Monday 

Room: Abbey - L4 

09:00 - 17:00 

(UTC±00

2 Days

Practical Messaging

Increasingly developers are relying on distributed architectures to solve the problems of scaling their applications and their development teams. But that means they now have to consider the problem of getting the parts of their systems to talk to each other.

DevOps
Python
.NET

In this tutorial, we will look at distributed systems, such as microservices, and how we integrate them. We will understand why we would prefer to messaging, the fundamentals and key concepts of messaging and how to build an event driven architecture. If you have ever been put off moving from HTTP or RPC-based solutions to messaging because of the need to learn how to implement messaging-based solutions, this workshop will get you started. if you have been using messaging but want to gain a firmer understanding of how to build event driven architectures, this workshop will help you understand how to succeed with reactive approaches.

The material is presented in four parts: integrating distributed systems, an introduction to messaging (hands-on exercises), advanced messaging, and event driven architectures.

Hands-on exercises are offered in C#, JavaScript, Python and Go.

Topics covered will include:

Day 1: Messaging Architectures and Simple Patterns

Integrating Distributed Systems

  • Why Distribute
  • Work Queues
  • Microservices
  • Integration Styles

Hands On Messaging

  • Channels, Endpoints
  • Command. Events, & Documents
  • Request-Reply
  • Point-to-Point
  • Publish-Subscribe
  • Dead Letter Channel
  • Data Type Channel
  • The Message Pump
  • Consumers
  • Service Activator
  • Pipes and Filters
  • Control Bus

Day 2: Distributed Systems Advanced Patterns

Advanced Messaging

  • Messaging vs Eventing
  • Streams vs. Queues
  • Ordering
  • Guaranteed Delivery

Event Driven Architectures

  • Asynchronous Conversations
  • Insights from Paper Offices and Flow-Based Programming
  • Commands or Event? Orchestration and Choreography.
  • Event Carried State Transfer (ECST)

Additional Topics

  • CAP Theorem
  • Working with Asynchronous UIs

Computer setup:
We will use Rabbit MQ for examples. You need not have the latter installed on your machine, but you should have Docker installed on your machine, as exercises will use Docker Compose.

This is a Bring Your Own Device (BYOD) course. At BYOD courses delegates are required to bring their own laptop with the necessary software installed.

The exercises are self-paced and you will find it helpful to have headphones to listen to the material that accompanies each exercise (though scripts are provided for those who cannot use headphones).


Ian Cooper

Polyglot Coding Architect in London, founder of #ldnug, speaker, tabletop gamer, geek. Tattooed, pierced, and bearded. The 'guv' on @BrighterCommand