Workshop: Practical Messaging - 1/2

Module 1/2

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.

In this tutorial, we will look at why asynchronous messaging is often the preferred solution to the problems of integrating and distributed solution, and look at the implementation of common messaging patterns.

If you have ever been put off moving from 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

The session will be a hands-on introduction and take you from simple messaging scenarios like "Hello World" through to more complex ideas like routing, brokers, and publish-subscribe.

Topics covered will include:

Day 1: Messaging Architectures and Simple Patterns
  • Integration Styles
  • Why Prefer Messaging?
  • Decoupled Invocation
  • Work Queues
  • Messaging Systems
  • Pipes and Filters Architectures
  • Channels, Endpoints, Routers
  • Types of Messages
  • Command. Events, & Documents
  • Request-Reply
  • Channels
  • Point-to-Point
  • Publish-Subscribe
  • Data Type Channel
  • Invalid Message Channel
  • Dead Letter Channel
  • Endpoints
  • Polling Consumers
  • Event Driven Consumers
  • Competing Consumers
  • Service Activator
Day 2: Distributed Systems Advanced Patterns
  • Routers
  • Content Based Router
  • Routing Slip
  • Process Manager
  • Management
  • Message Store
  • Control Bus
  • Reliability
  • CAP Theorem
  • Eventual Consistency
  • Guaranteed Delivery
  • At Least Once
  • Exactly Once
  • Durability & Persistence
  • Rabbit MQ Clusters
  • .NET Frameworks
  • Brighter
  • Mass Transit
  • NServiceBus
  • Message Oriented Middleware
  • Rabbit MQ
  • Redis
  • Kafka
  • SQS + SNS
  • Kinesis
  • Azure Service Bus

There will be hands on coding exercises in .NET and Python enabling you to implement simple and more complex messaging scenarios.

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.