We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
Don’t Build a Distributed Monolith - Jonathan "J." Tower - NDC London 2023
Learn the benefits and drawbacks of distributed monoliths, microservices, and modular monoliths in this NDC London 2023 talk, exploring the trade-offs between scalability, performance, and complexity in software architecture.
- Don’t build a distributed monolith, as they can have significant overhead and scalability issues.
- Microservices are inherently high availability, but a monolith can also be scalable.
- A distributed monolith is a mix of distributed and monolithic approaches, often with a central data store.
- Modular monoliths are a way to keep the benefits of a monolith while still allowing for some level of scalability.
- A microservice is a single service with a well-defined interface, which can be scaled and updated independently.
- There are four main problems with monoliths: understanding the data store, lowering the waterline, reducing coupling, and handling growth.
- Monoliths can be essentially distributed monoliths, with multiple areas of the application being separate modules.
- Microservices and distributed monoliths can both have benefits and drawbacks.
- Scalability and performance can be better in a well-architected microservice, but in some cases, a monolith may be a better fit.
- Modular monoliths can add complexity, but can also provide some benefits.
- Domain-driven design and distributed transactional complexity can be challenges with microservices.
- Event-driven architecture can be a good fit for microservices, but adding complexity.
- Most applications do not need microservices and can be fine as a monolith.
- Microservices are a solution that may not fit every problem, and monoliths can be a good fit in some cases.
- Microservices require a good level of technical expertise, domain knowledge, and understanding of the codebase.
- There are various tools and technologies that can help with microservices, including load balancing, API gateways, and event buses.
- Monoliths can be a good fit for some applications, especially those with less complex requirements or smaller scale.
- There are many different patterns and approaches to building software, and what is best will depend on the specific requirements and needs of the application.