Event-Driven Order & Inventory Platform
The project is focused on service boundaries, REST APIs, asynchronous Kafka workflows, PostgreSQL persistence, and a Docker-based local development environment.
Role and Contribution
Backend project owner responsible for shaping the service boundaries, API contracts, persistence model, and failure-handling approach.
Problem and Context
Commerce workflows often span several responsibilities that should not be hidden inside one large service. This project explores how order intake, inventory reservation, payment, shipping, and notifications can coordinate while keeping service ownership clear.
Solution Overview
The implementation direction uses Spring Boot services with REST APIs for synchronous boundaries and Kafka events for asynchronous workflow steps. PostgreSQL stores service-owned data, while Docker supports local development as the system grows.
Architecture View
Engineering Decisions
- Keep order, inventory, payment, shipping, and notification responsibilities separated so each service can evolve independently.
- Use Kafka events for long-running workflow steps where immediate blocking calls would make failure handling harder.
- Model inventory reservation and rollback explicitly instead of treating them as incidental database updates.
Technical Challenges
- Coordinating state across asynchronous service boundaries without overstating completion.
- Designing failure paths that remain understandable as more services are added.
Outcome and Current Status
In development. The case study documents the architecture direction and implementation focus without presenting roadmap items as finished work.
Lessons and Next Steps
- Continue implementing service endpoints and event handlers.
- Add integration tests around inventory reservation and rollback paths.
- Complete the Docker-based local environment and CI/CD deployment roadmap.