Generate Graph: mvn com.github.ferstl:depgraph-maven-plugin:4.0.1:aggregate -DcreateImage=true -Dscope=compile " -Dincludes=com.food.ordering.system*:*"
What I apply?
- Hexagonal (Clean) Architecture -> Port & Adapter Style
- Domain Driven Design (DDD)
- SAGA Pattern : process & rollback ( compensating transactions ) - Using Choreography
- Relational Database : for ACID and distributed transactional
- Kafka Messaging Systems for CQRS design and Microservices Communication
- (Ongoing) Outbox Pattern : Pulling Outbox Table With Scheduler , Saga Status
- Cover Failure Scenarios :
- Ensure idempotency using outbox table in each service
- Prevent concurrency issues with optimistic looks & DB constraints
- Kepp updating saga and order status for each operation
- Cover Failure Scenarios :