Monday
Room 3
09:00 - 17:00
(UTC±00)
2 Days
Untangle complex business processes with message-based architectures
Messaging in distributed systems offers a range of valuable benefits: it enables the design of decoupled components, where each component can evolve and scale independently. In addition to improving the system’s fault tolerance, it opens the door to building truly self-healing systems. But there's more to explore; the true power of messaging surfaces when we start expressing complex business processes with intention-revealing messages (both commands and events) to reflect what's happening in the real world.
These business processes are usually non-trivial, exceed the boundaries of a single method- or service invocation, and require us to redefine certain concepts, including coupling and time.
If you've been exposed to the basic building blocks of messaging and want to transition your system from a collection of meaningless and often highly-coupled service-to-service calls to one composed of carefully designed processes that reflect your business domain, this workshop is for you. Throughout this workshop, we'll discuss numerous real-world scenarios based on years of experience in the banking and retail domains, making you better equipped to recognize patterns in whichever domain you may be working on.
Who should attend?
This workshop is ideal for those who:
- Have a foundational understanding of messaging as an architectural style and the benefits it offers.
- Understand the basic message-based communication patterns, including request-reply and publish-subscribe.
- Have experience using message brokers, such as Azure Service Bus, RabbitMQ, or other queuing or broker technologies.
What will you learn?
Throughout this workshop, you’ll learn to:
- How to identify complex business processes within your domain
- Techniques to help identify the right service boundaries
- Coordinate complex business processes with orchestration and choreography
- Engage in thorough tradeoff analysis to get to the right design
- Manage requirements that need to occur at different points in time
- Seamlessly handle out-of-order messages
- Test complex, long-running processes in an automated way
- Leverage observability to troubleshoot issues where they matter most: in production!
Throughout this workshop, we'll divide into smaller groups for design exercises that require nothing more than your imagination and something to write with. Later, we'll switch gears and get more hands-on with some coding exercises to bring those ideas to life using C#.
Join me and unlock the secrets of messaging's real-world superpowers!
What should you bring?
This is a Bring Your Own Device (BYOD) workshop. Therefore, attendees are required to bring their own device with the necessary software already installed:
- .NET 8 or higher
- Visual Studio/Rider/VS Code
- Docker
In addition, it's helpful to have accounts ready to use for:
- Microsoft, so that you can access the Azure portal
- GitHub, for access to exercises and additional material