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

3 min read 1 year ago
Published on Apr 24, 2024 This response is partially generated with the help of AI. It may contain inaccuracies.

Table of Contents

Step-by-Step Tutorial: When to Use Microservices

  1. Introduction to Microservices:

    • Watch the video "When To Use Microservices (And When Not To!) • Sam Newman & Martin Fowler • GOTO 2020" from the GOTO Conferences YouTube channel.
  2. Reasons for Writing a Book on Microservices:

    • Listen to Sam Newman's explanation of why he decided to write a book on microservices.
    • Understand the process of updating and expanding the content of the book to reflect changes in the industry.
  3. Key Takeaways on Microservices:

    • Learn about the benefits of microservices, such as independent deployability, scalability, and isolating failure points.
    • Understand that microservices should be chosen based on the desired outcomes and benefits they offer, rather than adopting them as a default solution.
  4. Considerations Before Implementing Microservices:

    • Evaluate when to consider using microservices based on factors like organizational structure, data isolation, and scalability requirements.
    • Experiment with implementing microservices gradually, starting with one module from a simple monolith and evolving from there.
  5. Challenges of Independent Deployability:

    • Strive for independent deployment of each release when using microservices to reduce coordination efforts as team size increases.
    • Avoid the trap of interdependent services by creating clear deployment mechanisms and identifying patterns that may indicate the need for restructuring services.
  6. Maintaining Modularity in Microservices:

    • Understand the importance of information hiding and modularity in microservices to prevent violations and maintain system integrity.
    • Identify patterns and tools to enforce modularity and information hiding within microservices architecture.
  7. Handling Data in Microservices:

    • Recognize the complexity of breaking apart a module from a monolith into microservices, particularly when dealing with data.
    • Extract microservices based on data dependencies and consider the impact on data handling and data isolation.
  8. Organizational Changes with Microservices:

    • Acknowledge the organizational shifts required when transitioning to a microservices architecture, including changes in decision-making processes and team responsibilities.
    • Embrace incremental changes in both architecture and organizational structure to effectively implement and benefit from microservices.
  9. Adapting to Microservices:

    • Embrace the willingness to change as an organization to maximize the benefits of using microservices.
    • Consider the potential dysfunctions and challenges that may arise in transitioning to a microservices architecture and address them proactively.
  10. Further Learning:

    • Subscribe to the GOTO YouTube channel for more insightful videos on software development.
    • Explore upcoming GOTO conferences and events to deepen your understanding of key topics in the industry.

By following these steps and understanding the insights shared in the video, you can make informed decisions on when to use microservices effectively in your development projects.