Middle — Senior
Migration of a monolithic application to microservices using DDD
livecode
Task condition
The company plans to transition from a monolithic architecture to a microservices architecture. It is necessary to formalize the process of system decomposition using the Domain‑Driven Design approach, covering the following aspects:
- Approach to dividing the business domain into domains and subdomains;
- Identification and formalization of bounded contexts;
- Definition of aggregates and their root entities;
- Designing a domain events model for asynchronous service interaction;
- Ensuring data consistency and integrity between individual microservices;
- Addressing issues related to distributed transactions;
- Testing strategy focusing on integration tests;
- Data migration from the monolith to new microservices;
- Architectural solutions considering scalability, domain complexity, and the need for system evolution.