Go microservice, organized in a monorepo structure using gRPC to facilitate interactions between services.The medieval themed system is designed to demonstrate how these technologies can be integrated to build a scalable and efficient distributed architecture.
- gRPC for fast communication between services.
- Consul for Service Registry
- RESTful APIs are available for easy connections with external systems.
- Service Discovery using Consul.
- Resiliency Patterns like circuit breakers and retry mechanisms.
- Health Checks to monitor service status.
- Centralized Configuration Management to handle environment-specific settings.
- Load Balancing to evenly distribute traffic across service instances.
- Automated Deployment using Docker for containerization and orchestration.
- Scalability designed to handle increased load by adding more service instances.
- structured Logging and Aggregation using loki/promtail
- Prometheus for performance monitoring and alerting
- Tracing with Jaeger
To run the application using Docker, you can follow these steps:
-
Navigate to the main directory.
-
Use the following command to build and start the containers:
docker compose up --build

