Migrating to Microservices

Format: Live Virtual or In-Person Training
Duration: 1-Day Class
Instructor: Mark Richards
Students: Up to 50

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 overall agility. Unfortunately, many companies are struggling trying to break apart their existing monolithic or service-oriented architectures and move them to a microservices architecture and are finding it more effort than they bargained for. This hands-on class takes you on a detailed journey on ways to effectively and iteratively break apart a monolithic application into microservices.

The first part of this class focuses on breaking apart monolithic systems and monolithic data into smaller parts. In this part of the class you’ll also learn various techniques and patterns for decomposing monolithic systems, how to identify services, and how to get service granularity right. You’ll also gain an understanding of the types of services that exist within a microservices ecosystem, including learning the differences between orchestration services and aggregation services. 

The second part of this class focuses on how to put those smaller parts back together—in other words, how those smaller parts should communicate with each other in terms of business workflows and transactions. In this part of the class you’ll learn the intricacies between synchronous and asynchronous communication, and when to apply each of these communication styles. Knowing that most microservices applications still require business workflows, you’ll learn how to manage those workflows through orchestration and choreography. Finally, you’ll learn how to manage distributed transactions in a highly distributed architecture through various transactional sagas.

This class is an abbreviated version of the full 2-day class Software Architecture: The Hard Parts. It can be taught as a full 1-day class or as 2 half-day classes.

For more information about the pricing and availability of this course for private (corporate) training, please contact Mark Richards at info@developertoarchitect.com.

Class Agenda

Unit 1: Architectural Modularity

  • Why migrate from monolithic systems?
  • Business and technical drivers
  • Migration patterns and approaches


Unit 2: Component-Based Decomposition

  • Microservices migration patterns
  • Identifying and sizing components
  • Flattening components
  • Identifying component dependencies
  • Creating component domains
  • Creating domain services
  • Domain service decomposition
  • Hands-on exercises: Flattening components


Unit 3: Service Granularity

  • Granularity disintegration drivers
  • Granularity integration drivers
  • Analyzing tradeoffs
  • Hands-on exercises: Determining service granularity


Unit 4: Understanding Service Types

  • Functional services
  • Infrastructure services
  • Orchestration services
  • Aggregation services
  • Adapter services
  • Data services
  • Techniques for managing service types


Unit 5: Communication Protocols

  • Synchronous communication
  • Asynchronous communication
  • Dynamic quantum entanglement


Unit 6: Managing Workflows

  • Defining orchestration
  • Defining Choreography
  • Analyzing tradeoffs
  • Hybrid topologies
  • Hands-on exercises: Choosing a workflow type


Unit 7: Transactional Sagas

  • Three dimensional sagas
  • Epic Saga
  • Fantasy Fiction Saga
  • Fairy Tale Saga
  • Parallel Saga
  • Phone Tag Saga
  • Horror Story Saga
  • Time Travel Saga
  • Anthology Saga
  • Transactional Saga Tradeoffs
  • Hands-on exercises: Choosing the right transactional saga




©2022 DeveloperToArchitect