Mert is an event-driven microservices backend system built using Spring Boot, Java 21, Kafka, gRPC, and PostgreSQL.
It simulates a real-world distributed system architectured as microservices where:
- Merchant creation triggers billing account creation via gRPC (synchronous communication)
- Merchant creation also publishes events to Kafka
- Analytics service consumes Kafka events asynchronously for processing and insights
| Category | Technology | Details |
|---|---|---|
| Backend | Java 21 | Programming Language |
| Spring Boot | Web - REST API, Data JPA | |
| Communication | gRPC | Inter-service communication |
| Apache Kafka | Event streaming | |
| Database | PostgreSQL | Primary Data Store |
| Infrastructure | Docker | Containerization |
| Monitoring | Kafka | Event tracking & observability |
- Exposes REST APIs for merchant creation
- On merchant creation:
- Calls Billing Service via gRPC to create a billing account
- Produces an event to Kafka topic
merchant
- Acts as the entry point of the system
- Exposes gRPC service
- Receives merchant creation requests from Merchant Service
- To create and manage billing accounts for the Merchant
- Consumes events from Kafka topic
merchant - Processes merchant creation events asynchronously
- To be used for analytics, reporting, and downstream processing
Mert demonstrates a production-style distributed system combining synchronous (gRPC) and asynchronous (Kafka) communication patterns. It models a real-world micro-services architecture using docker where core business workflows and analytics pipelines are decoupled for scalability and resilience.