O'Reilly logo
live online training icon Live Online training

Microservices Architecture and Design

Understanding core concepts, challenges, and hybrid architectures

Topic: Software Development
Mark Richards

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. It is undeniably one of the more popular trends in the software industry, and everyone seems to be eager to quickly embrace and adapt this new architecture style. Unfortunately, as many companies are painfully experiencing, microservices is a fairly complex architecture style that is not suited for all applications and environments.

Join Mark Richards, author of the O’Reilly video training course series Software Architecture Fundamentals and also of the O’Reilly reports Microservices vs. Service-Oriented Architecture and Microservices Antipatterns and Pitfalls, for a two-day, intensive online course that takes a detailed journey through the microservices architecture style. By the end of this course, you will gain 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.

What you'll learn-and how you can apply it

By the end of this live, hands-on, online course, you’ll understand:

  • The core concepts behind the microservices architecture style
  • The primary benefits and drawbacks of microservices
  • How microservices differs from service-oriented architecture
  • Hybrid architectures such as the popular service-based architecture style and event-driven microservices
  • Microservices design techniques and patterns such as reporting, database migration, and remote access hybrids

And you’ll be able to:

  • Make the right architecture and design decisions for your organization when it comes to Microservices
  • Navigate the challenges surrounding microservices implementation such as service granularity, service contracts, distributed logging, distributed transaction management, eventual consistency, and remote access reliability and latency

This training course is for you because...

  • You are a software architect or technical lead in any platform who wants to fully understand the architectural aspects of the microservices architecture style to determine whether it is the right fit for your application and/or organization.
  • You are considering using microservices for your organization
  • You are migrating to a microservices architecture but experiencing issues and challenges
  • You want to validate your decisions regarding microservices in your organization
  • You want to learn about other service-related architecture styles besides microservices
  • You want to deepen your understanding of microservices


No prior experience with microservices is required as the course will cover the core concepts, challenges, and design techniques of microservices.

Since this course is focused more on the architecture and design aspects of microservices, we will not write any code in this class. Therefore, no laptop or computer is required for the course (other than to take electronic notes if so desired).

Recommended Preparation:

What are microservices?

Microservice Architecture

Building Microservices

About your instructor

  • 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's been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture. He's the author of numerous O’Reilly technical books and videos, including several books on microservices, the Software Architecture Fundamentals video series, the Enterprise Messaging video series, and Java Message Service, second edition, and was a contributing author to 97 Things Every Software Architect Should Know. A speaker and trainer, he’s given talks on a variety of enterprise-related technical topics at hundreds of conferences and user groups around the world.


The timeframes are only estimates and may vary according to how the class is progressing


Microservices Core Concepts - Distributed architecture challenges and considerations - Service component granularity - Bounded context concepts and challenges - Microservices drivers and advantages - API layer overview

Microservices Hybrids and Migration Techniques

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


Microservices Design Techniques

  • Service identification techniques
  • Service template design patterns
  • Event-driven services
  • Service communication patterns
  • Remote access error handling

Microservices Data Considerations

  • Distributed data challenges
  • Creating data domains
  • Dealing with common data
  • Deferred data migration
  • Distributed Transactions
  • Eventual consistency patterns