Modern applications are moving towards microservices architecture. Microservices are a way to scale development, improve release time, and simplify the process from ideas to deployment.

The “Introduction to microservice architecture” workshop (3-day) goes over the main principles, from design, to code and to process that help organizations move from monolith development to microservices. The workshop includes many hands-on exercises, that help illustrate how the principles apply in day-to-day work.

The workshop presents the methodology and reasoning, benefits, and challenges of moving to microservices. It starts with the principles of what makes good architecture, explains how Domain Driven Design tackles these aspects and how microservices apply them.  It covers both service data and communication, along with testing and deployment.

Target audience

Developers, architects, testers.

Workshop goals

Following the workshop attendees, will be able to:

  • Describe the principles of good architecture
  • Apply domain-driven design principles to services
  • Break down monoliths and big services into micro services
  • Choose the right communication patterns between services
  • Design and implement a development, testing and deployment processes around microservices

Workshop agenda

All the topics include both presentation and hands on exercises.

Good architecture

  • Properties of good architecture
  • The cost of change
  • Managing complexity
  • Metrics for architecture effectiveness

Domain-Driven Design basics

  • Ubiquitous language
  • Bounded contexts
  • Modeling objects

Microservices architecture

  • From monolith to microservices
  • Properties of microservices
  • Surface area and interface-as-contract
  • APIs
  • Model translation across services
  • Breaking a monolith into services
  • Ports and adapters
  • Isolation and concurrency
  • Composition patterns

Service data

  • Data storage and consistency
  • Splitting monolithic data
  • Distributed transaction management
  • Two-phase commit
  • Saga pattern
  • CQRS

Service Communication

  • Sync and async communication
  • Event sourcing
  • Service registration and discovery
  • Orchestration and choreography
  • Stream processing

Development process of microservices

  • Mono-repo and Multi-repo
  • CI / CD processes
  • Containers and environment configuration
  • Infrastructure-as-code
  • Versioning services
  • Documentation
  • Dark and canary releases
  • Rollback and roll-forward

Good practices

  • Repeatability
  • Testability
  • Fault tolerance and resiliency patterns
  • Observability and monitoring

Prerequisites

  • 1-year experience in software development (in any role)
Contact Us!