Prasorganic User Service is one of the components in the Prasorganic Microservice architecture Built with Go (Golang). This service supports user data management operations via RESTful API and gRPC.
-
User Management: Supports operations for creating, retrieving, and updating user data.
-
RESTful API: Provides a RESTful API using Fiber with various middleware for managing requests and responses.
-
gRPC: Utilizes gRPC for inter-service communication, equipped with interceptors for handling requests and responses.
-
Image Storage: Integrates with ImageKit for storing and managing user profile photos.
-
Database: Uses PostgreSQL for data storage with database migration support.
-
Caching: Redis is used for data caching.
-
Logging: Logs are recorded using Logrus.
-
Error Handling: Implements error handling to ensure proper detection and handling of errors, minimizing the impact on both the client and server.
-
System Resilience: Uses a Circuit Breaker to enhance application resilience and fault tolerance, protecting the system from cascading failures.
-
Configuration and Security: Employs Viper and HashiCorp Vault for integrated configuration and security management.
-
Testing: Implements unit testing using Testify.
This project is licensed under the MIT License. See the LICENSE
file for details.
This project makes use of third-party packages and tools. The licenses for these
dependencies can be found in the LICENSES
directory.
-
Docker:
Licensed under the Apache License 2.0. For more information, see the Docker License. -
Docker Compose:
Licensed under the Apache License 2.0. For more information, see the Docker Compose License. -
PostgreSQL:
Licensed under PostgreSQL License. For more information,see the PostgreSQL License. -
Redis:
Follows a dual-licensing model with RSALv2 and SSPLv1. For more information, see the Redis License. -
RedisInsight:
Licensed under the RedisInsight License. For more information, see the RedisInsight License. -
GNU Make:
Licensed under the GNU General Public License v3.0. For more information, see the GNU Make License. -
GNU Bash:
Licensed under the GNU General Public License v3.0. For more information, see the Bash License. -
Git:
Licensed under the GNU General Public License version 2.0. For more information, see the Git License.
Thank you for viewing my project.