Microservices Architecture and Design

Microservices is one of the latest software architecture styles that promises to deliver benefits such as ease of testing, fast and easy deployments, fine-grained scalability, architectural modularity, and high overall agility. Unfortunately, coupled with these benefits comes a lot of complexity. This product-agnostic architecture class provides you with a full understanding of the Microservices architecture style and what hybrids and alternatives exist, which will help guide you in making the right architecture and design decisions for your organization. In this workshop I will start by discussing the core concepts of the Microservices architecture style, the primary benefits and drawbacks of Microservices, how Microservices differs from SOA, and also how to create hybrid architectures. Taking a deeper dive, I will then talk about the hard stuff in microservices, including how to identify services, various service template design strategies, event-driven services, service communication patterns, and distributed transactions. Finally, I'll talk about the hardest part of microservices, which is how to distribute your monolithic data.

Workshop Outline:

Microservices Core Concepts

  • Topology overview
  • Distributed architecture considerations
  • Service components and granularity
  • Bounded context concepts and challenges
  • Microservices drivers and advantages
  • API layer design


    Hybrid Architectures and Migration Techniques

  • Service-based architecture
  • Microservices migration patterns
  • Architectural modularity


    Microservices Design Techniques

  • Service identification
  • Service design
  • Event-driven services
  • Service communication patterns
  • Distributed Logging
  • Error handling techniques


    Microservices Data Considerations

  • Distributed Data Challenges
  • Creating Data Domains
  • Dealing with Common Data
  • Deferred Data Migration
  • Distributed Transactions
  • Eventual Consistency Patterns

About Mark Richards

Mark Richards is an experienced, hands-on software architect involved in the architecture, design, and implementation of microservices architectures, service-oriented architectures, and distributed systems. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. Mark is the founder of DeveloperToArchitect.com, a website devoted to helping developers in the journey to software architect. He is the author of numerous technical books and videos, including the recently published Fundamentals of Software Architecture, Microservices AntiPatterns and Pitfalls, Microservices vs. SOA, the Software Architecture Fundamentals video series, The Enterprise Messaging video series, Java Message Service, 2nd Edition, and contributing author to 97 Things Every Software Architect Should Know. Mark has a master’s degree in computer science and is a regular conference speaker at the No Fluff Just Stuff (NFJS) Symposium Series. He has spoken at hundreds of conferences and user groups around the world on a variety of enterprise-related technical topics.

More About Mark »