Microservices Practical Training Course

Microservices Practical Training Course

How to use microservices in Domain-Driven Design sauce and live a peaceful life

The next edition of the workshop will be held in Italian. Join the waiting list to know when we will schedule an English edition of the workshop, or visit the Italian page of the Microservices Practical Workshop.

Microservices: the panacea for all ills, or the worst thing to do?

In reality, neither one nor the other. They are one of the many possible architectures, there are contexts in which they provide great advantages and others in which they bring only death and destruction.

In the Microservices Practical Workshop with Gianluca Padovani, we will learn to build a microservices architecture, recognize variations and differences and choose the best one for our context.

One of the first steps to fully understand Microservices is to analyze them from a Domain-Driven Design perspective, also to understand if an architecture of this type is suitable for our business.

The mental predisposition in the analysis of the domain in which one is going to operate, even before writing the code, is fundamental to start analyzing the problem from the correct point of view and in all its complexity, and EventStorming is a fundamental tool with regards to this.

We will understand what the different “nuances” of architecture and microservices are, when it is appropriate to push on a certain feature or when it is better to push on the opposite feature.

Target Audience

Have you read a lot about microservices but don’t feel like trying to get your hands on it? Want to see some real implementation cases? Do you want to compare yourself with someone who has experience in the field? It’s your time.
Have you tried microservices, do you still bear the scars and want to understand why there are still people who persist in doing these crazy things? This is the course for you.
Have you already used microservices, do you like them and want to see if you did them well, or how you could do them better? This course is for you.

This workshop is specifically aimed at:

  • Software Architect
  • Software Developer
  • CTO.

Basic knowledge of Domain-Driven Design and EventStorming is required.
Anyone who enrolls in the course will receive a digital copy of the book Cronache di Domain-Driven Design (published by Avanscoperta).
Reading the first part of the book is a requirement to access and participate in the course.

We will develop an architecture making HTTP calls, and sending messages on queues, so you will need to have some familiarity with these. You need to know what a DB is and what a docker image is.


In this course we will develop a microservices architecture. We will start by analyzing an example domain with EventStorming, a technique that will help us dissect the domain in all its complexity. We will find what our service boundaries are, decide which microservices we want to focus on, and develop them.

During this 5 session journey, we will decide which communication method to use, how to deploy our microservices and how to evolve them.
We will also work on a monolith, from which to “extract” some functionality.

We will understand how to manage load situations, and how to be sufficiently resilient to the crash of one or more microservices.
We will work both in groups and individually, as if we were “a real company”. We will address various issues and alternate moments of practice with those of theory, in order to understand which principles and which heuristics support our decisions.


Session 1: Microservices: What they are and where to find them

  • What are microservices and why use them
  • Macro, Micro, Nano: does size matter
  • In search of microservices in DDD sauce: EventStorming

Session 2: Let’s develop the first microservice

  • How microservices communicate
  • Events, commands, messages
  • How to organize persistence and how many databases to have
  • How to manage foreign keys and transactions

Session 3: Let’s build a complex system

  • Couplings between the various microservices
  • The concept of Saga
  • How to change the interface of my microservices
  • Versioning, synchronized deployments, breaking changes.

Session 4: The monolith is not a problem but an opportunity

  • The luck of having a monolith
  • How to break down a monolith
  • One step at a time (which is the first?)

Session 5 – Let’s put it all together

  • UI & Reporting: How do I put it all together
  • Sleep peacefully: how to understand what is happening
  • Common Microservices Problems
  • A bit of theory…

Q&A – Follow-up (2 h) one month after the workshop is finished.

Learning objectives – What are we gonna learn

  • After seeing how EventStorming works, we will learn to analyze a complex domain step-by-step, ensuring that everyone has a shared understanding of the context in which we will operate our microservices
  • We will learn about microservices, what they are, how they are found and how to make them communicate and how to put them into production.
  • What are the key features of a microservices architecture and what could happen if some of them fail.
  • How to introduce them into an existing environment.
  • What should I expect when I put something into production, and traffic increases or something simply “breaks”.

Expect to get your hands dirty – How does it work

The course is structured in 5 half days + 2 hours of follow-up.

During the four sessions we will develop a microservice architecture and make it work, we will put it under stress and make it evolve during the various days.

The workshop will be online and live, for a maximum of 16 people: the teacher and all participants will be in video conference and will have a series of digital tools available to interact with each other and work hands-on.
Despite the online mode, the course maintains its interactive and participatory approach.

For this reason, it is required that all participants have their cameras turned on for the entire duration of the workshop for better enjoyment and communication.
It will not be a passive course, made only of slides and pre-recorded videos.

We will apply some principles of the Training from the back of the room method, with a prevalence of activities over lectures.
The few theoretical definitions are accompanied by numerous exercises and practical activities.
Sharing between participants and the support of the trainer complete the training framework.

Why should you buy a ticket

At the end of the course you will have increased your knowledge of microservices.
If you have never put any microservices into production you will be able to identify the first ones to put into production.
If you have microservice scars, we’ll try to ease your pain and give you the tools to give it a second try.
If you already have microservices in production, the intent is to give you all the possible ideas to make a leap in quality and improve your development process.


Are there any entry requirements to join this workshop?

  • Basic knowledge of Domain-Driven Design and EventStorming is required.
    To this end, and to ensure that we arrive in the classroom with clear foundations, all participants will be sent a free digital version of the book Cronache di Domain-Driven Design.
    Reading the first part of the book is required before starting the course.
  • We will develop an architecture by making HTTP calls, and sending messages on queues so you need to have some familiarity with them. You need to know what a DB is and what a docker image is.
  • We will publish a code example that you should be able to understand, if it is already written in the language you use, otherwise rewrite it in the language you usually use.
  • There are no constraints on the language you want to use (that’s the beauty of Microservices…).

Further readings or suggested resources?
Domain-Driven Design in 2020, an article by Alberto Brandolini.
Regarding microservices, the books by Sam Newman are a great starting point.
We also suggest a tutorial on RabbitMQ for the technical part.

Is there anything I must do before I buy a ticket for this online workshop?
If you have a computer/tablet, a stable connection (at least 20 Mbps in download and 10 Mbps in upload), earphones, a microphone, and a webcam, then you’re ready to join the workshop.
You’ll get detailed information on what tools we’ll be using and how to get ready a couple of weeks prior to the workshop.
Check out your connection’s speed.
The workshop will keep its highly interactive and hands-on spirit despite being online. This is why we require that all participants keep their webcam on for the whole duration of the workshop: this will enhance the quality of the communication and of the workshop as a whole.


This workshop will be confirmed upon reaching the minimum number of participants. We’ll send an official confirmation to all registered attendees 10-15 days weeks prior to the workshop dates.

LAST CHANCE! Are you interested in this course? Please purchase your ticket by Monday, 7 October 2024, to help us confirm it as soon as possible.
If we do not reach the minimum number of participants required to activate it by this date, the course will not be confirmed and will be postponed… don’t wait until the last minute to buy your ticket!

The sooner we reach the minimum numbers necessary for its activation, the sooner we can confirm the course and guarantee its execution.
If the course is confirmed, you will see a green tick on this page that says “confirmed/guaranteed to run”, and you will be able to buy tickets even after this date.

About the workshop

Language: English.
Laptop: Yes, check out the FAQ section.
Maximum number of attendees: 14 participants.
Tools and Workstation: The workshop will take place online and in live streaming by using digital tools. You’ll get detailed information on how to join the online workshop, how to get ready for it and how it will work once the workshop will be confirmed.
It is highly recommended that each participant joins the workshop from their own workstation: not sharing one same laptop and/or room with other people will improve the remote experience.

Book it for your company

Contact us using the form at the bottom of this page if you wish to arrange a private custom edition of the Microservices Practical Training Course.


Gianluca Padovani

Gianluca is a software craftsman, TDD addicted and agile coach.
Gianluca has fallen in love with functional programming, Elixir/Erlang in particular. He also likes Ruby, NodeJs and C++.
He is the CTO at Coders51.


Small Talk: chiacchierata informale con Gianluca Padovani (YouTubeSpotify).

A gentle introduction to Microservices: meetup da remoto con Gianluca Padovani (YouTubeSpotify).

Functional Programming: chiacchierata tra Matteo Baglini e Gianluca Padovani (YouTubeSpotify).

About us

Avanscoperta is a growing community of professionals learning together, exchanging experiences and ideas, exploring uncharted territories.

We carefully select the most relevant topics and the best trainers and thought leaders worldwide with an eye to the most engaging teaching techniques.
Are you ready to learn with us?

Are you interested in this course?

If you have any specific questions, or if you want to receive more information on dates, content or offers about this course, drop us a line. We'll gladly get back to you!


    Get exclusive content from experts in software development, technology, business and design!


    Subscribe to our newsletter!