Understanding Microservices: a guide for the monolithic developer - Layla Porter - NDC Porto 2023

Learn how to transition from monolithic architecture to microservices, explore key concepts such as service registries, circuit breakers, and loose coupling, and discover practical strategies for incremental distribution and experimentation.

Key takeaways
  • Microservices can be intimidating, but understanding them can be done incrementally.
  • The monolithic thinking pattern is common, but it’s important to consider modularity.
  • In distributed systems, asynchronous communication is key to keep modules ready.
  • Service registries help manage applications, and discovery clients enable self-registration.
  • Circuit breakers can be used to prevent cascading failures.
  • Verify the principles of DDD (Domain-Driven Design) to create a disciplined approach.
  • Understand the importance of planning scope, as monolithic thinking can be limiting.
  • Be prepared for a journey of incremental distribution and experimentation.
  • Keep in mind that principles are the same, regardless of the architecture.
  • Understanding the importance of loose coupling and monolithic thinking can help.
  • API gateways can be used as a central access point for applications.
  • Treat scope as a per-service problem, and identify high-cohesion areas.
  • Break down larger projects into smaller, more manageable ones.
  • Plan the scope of each project to avoid overwhelming complexity.
  • Be flexible, as changes are inevitable.
  • Identify high-cohesion areas and decompose modules accordingly.
  • Avoid the “big ball of mud” by incrementally introducing new services.
  • Build upon existing knowledge and principles.