Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/caiodgallo/granite-identity
Granite Account is a Go-based application designed to demonstrate production-grade patterns for an account management system in a fintech environment.
https://github.com/caiodgallo/granite-identity
docker go golang grpc postgresql
Last synced: 25 days ago
JSON representation
Granite Account is a Go-based application designed to demonstrate production-grade patterns for an account management system in a fintech environment.
- Host: GitHub
- URL: https://github.com/caiodgallo/granite-identity
- Owner: CaioDGallo
- License: mit
- Created: 2024-08-23T17:37:12.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-09-04T14:40:39.000Z (2 months ago)
- Last Synced: 2024-10-13T06:01:12.588Z (25 days ago)
- Topics: docker, go, golang, grpc, postgresql
- Language: Go
- Homepage:
- Size: 73.5 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Granite Account
![Granite Account Banner](./docs/assets/granite-logo.png)
![License](https://img.shields.io/github/license/CaioDGallo/go-ama)
Granite Account is a Go-based application designed to demonstrate production-grade patterns for an account management system in a fintech environment. The project focuses on building a robust, scalable architecture with a clear emphasis on reliability, traceability, and secure communication.
## Key Features
- **Traceable Requests:** Requests are tagged with unique request IDs, enabling end-to-end traceability across services for debugging and monitoring purposes.
- **Logger Middleware:** Integrated logging middleware captures every request and response, providing valuable insights for audit trails and system health checks.
- **ACID-Compliant Transactions:** Ensures that all database operations adhere to the ACID principles, guaranteeing consistency and reliability in transaction handling.
- **Client-Server Communication:** Employs JSON for simple and flexible communication between clients and the application.
- **Service-to-Service Communication:** Utilizes gRPC for high-performance, type-safe communication between microservices.## Next Steps
- **Testing:** Add unit and integration tests to the application.
- **Rate Limiting:** Implementing rate limiting to control the flow of incoming requests, ensuring fair usage and preventing abuse.
- **Circuit Breaking:** Adding a circuit breaker pattern to enhance system resilience by gracefully handling potential service failures.## Installation
To set up the project locally:
1. **Clone the repository:**
```bash
git clone https://github.com/your-username/granite-account.git
cd granite-account
```2. **Build the project using the Docker Compose:**
```bash
docker compose up --build
```3. **Access the application:**
The application should be running on `http://localhost:8080`.## Usage
- **REST API:** Granite Account exposes a RESTful API for client communication, using JSON as the data format.
- **gRPC Services:** Microservices interact using gRPC, ensuring efficient and scalable service-to-service communication.
- **Request Logging:** Every request is logged along with its unique request ID, making it easy to track and troubleshoot issues.## Contributing
Contributions are welcome! Please feel free to submit issues, fork the repository, and open pull requests.
## License
This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for more details.