A microservice architecture on Spring Boot for managing products, orders, inventory, and reviews.
- API Gateway — entry point that routes client traffic to downstream services.
- Eureka — service registry and discovery.
- User Service — user account management.
- Auth Service — authentication and token issuance.
- Inventory Service — stock levels and reservations.
- Order Service — order creation and processing.
- Reviews Service — product ratings and user feedback.
- Notification Service — user notifications.
- Java 17
- Spring Boot
- Maven
- PostgreSQL
- Microservices
- API Gateway pattern: a single edge endpoint for all clients
- Service registration and discovery with Netflix Eureka
- JWT-based authentication and authorization
- JUnit, Mockito
- Unit and integration tests
- Testcontainers for isolated environments
- Maven builds
- Docker containerization
- GitHub Actions for automated build, test, and Docker Hub publishing
- Kafka for inter-service event streaming
- Grafana for dashboards
- OpenTelemetry for metrics, traces, and logs
- Grafana Loki for centralized logs
- Grafana Tempo and Zipkin for distributed tracing
- Prometheus for metrics collection
Fastest way to run everything using published Docker images.
- Clone the repo or download the compose file: https://github.com/tishembitov/micromart/raw/main/deployment/docker-compose.yaml
- Run the following command:
cd deployment && docker-compose up -dBuild images from your local codebase—slower, but development-friendly.
- Clone the repository.
- Launch with rebuild:
docker-compose -f docker-compose-dev.yaml up -d --buildFor a smoother workflow, install Java 17+ and Maven. You can spin up core infrastructure (DB, broker, etc.) with: https://github.com/tishembitov/micromart/raw/main/deployment/docker-compose-infra.yaml
Then run individual services locally:
mvn spring-boot:run- Swagger UI: http://localhost:8080/swagger
- Postman collection: https://github.com/tishembitov/micromart/raw/main/docs/postman.json
