Importance of modular design in DDD

It seems like the concept of modular design is favored less than other common concepts in domain driven design by designers and developers.

What are your observations? Is the concept of module and modular design practiced as it should in the teams that you have worked with?

In your opinion why concept of module is faded under the shadow of other concepts like domain, value object, aggregate, service and etc? How this issue may cause damage to domain richness?

To discuss about this, you can join Iran DDD community group with the link in below:

https://t.me/ddd_iran_discussion

Uber & microservice case

Studding Cases of Utilizing modern methods in big tech companies can be valuable and informative. This case is one the interesting ones in which Uber company’s engineers explain that how and when they migrated towards microservice architecture. In this case Uber’s engineers have taken a road to a style of microservice architecture which was named as “Domain-Oriented Microservice Architecture” by themselves.
Some parts of this story:

As a result, we adopted a microservice architecture. Ultimately our systems became more flexible, which allowed teams to be more autonomous.
🔘 System reliability. Overall system reliability goes up in a microservice architecture. A single service can go down (and be rolled back) without taking down the whole system.
🔘 Separation of concerns. Architecturally, microservice architectures force you to ask the question “why does this service exist?” more clearly defining the roles of different components.
🔘 Clear Ownership. It becomes much clearer who owned what code. Services are typically owned at the individual, team, or org level enabling faster growth.
🔘 Autonomous execution. Independent deployments + clearer lines of ownership unlock autonomous execution by various product and platform teams.
🔘 Developer Velocity. Teams can deploy their code independently, which enables them to execute at their own pace.

Source: https://eng.uber.com/microservice-architecture/

Criticism and review

Chris Richardson is one of the experts in the field of microservice architecture. In the majority of his talks, he emphasizes that “Use monolith as much as you can.” And use microservice architecture only when you are sure that monolith architecture is not enough for you.

Make the most of the monolithic architecture.
The monolithic architecture is not an anti-pattern.
If software delivery is slow =>
▫️ Optimize development process
▫️ Improve deployment pipeline = more automation
▫️ Improve team autonomy
▫️ Modularize the monolith
▫️ Eliminate hand-offs and create cross functional teams
▫️ If technology stack is obsolete => modernize to a new monolith

Read more: https://www.slideshare.net/chris.e.richardson/decompose-your-monolith-strategies-for-migrating-to-microservices-tide

Microservice or monolith?

این تصویر دارای صفت خالی alt است؛ نام پروندهٔ آن photo_2020-12-15_19-24-44-1024x766.jpg است

Chris Richardson is one of the experts in the field of microservice architecture. In the majority of his talks, he emphasizes that “Use monolith as much as you can.” And use microservice architecture only when you are sure that monolith architecture is not enough for you.

Make the most of the monolithic architecture.
The monolithic architecture is not an anti-pattern.
If software delivery is slow =>
▫️ Optimize development process
▫️ Improve deployment pipeline = more automation
▫️ Improve team autonomy
▫️ Modularize the monolith
▫️ Eliminate hand-offs and create cross functional teams
▫️ If technology stack is obsolete => modernize to a new monolith

Read more: https://www.slideshare.net/chris.e.richardson/decompose-your-monolith-strategies-for-migrating-to-microservices-tide