When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler

Evaluate microservices benefits and trade-offs for optimized deployments, learn when to use (and not to) in this conversation with Sam Newman and Martin Fowler, covering setup, strategy, scalability, and more.

Key takeaways
  • Microservices are a choice, not a requirement, and should be considered only when there are clear benefits.
  • Independent deployability is a key reason to consider microservices, as it allows for faster and more flexible deployments.
  • Data partitioning is another important aspect of microservices, as it allows for easier scaling and reduced data corruption.
  • Organizational autonomy is also crucial, as it allows teams to own and manage their own services.
  • Microservices require a significant amount of setup and strategy, including database planning, schema design, and communication planning.
  • Monolithic applications are not inherently bad, and may be more suitable for certain use cases.
  • When considering microservices, it’s essential to evaluate the benefits and trade-offs carefully, and to have a clear understanding of the costs and complexities involved.
  • Building microservices requires a range of skills and expertise, including domain knowledge, technical skills, and communication skills.
  • Decentralization can be a key benefit of microservices, as it allows for more flexible and resilient systems.
  • There is no one-size-fits-all solution when it comes to microservices, and each organization must evaluate its own specific needs and constraints.
  • Underlying infrastructure and architecture can significantly impact the success of microservices, and must be carefully planned and designed.
  • Microservices can be more difficult to maintain and troubleshoot than monolithic applications, due to the increased complexity and interconnectedness of the system.