Distributed systems through play – building a microservice escape room

Speaker: William Brander

Duration: 2-day workshop

Learn distributed system patterns through play! In this workshop we’ll build an IoT escape room to explore how to build enterprise distributed systems. At each stage, we’ll see how the IoT concepts translate into enterprise system development.

We’ll start with a working minimal implementation of an escape room with microservice puzzles, and see how they fail. From the failures we can see how each of the puzzles can be improved to be made more scalable and fault tolerant. We’ll then explore some more advanced distributed systems concepts

### This workshop is intended for

– Senior developers beginning to take steps into the world of distributed systems
– Developers interested in learning IoT basics
– Anyone that wants to learn how to make their existing microservices more scalable and fault tolerant

### What we’ll cover:

– Introducing the escape room puzzles
– IoT basics, reading and writing
– Triggering things through REST
– Where REST breaks down
– Introducing messaging via Azure Service Bus
– Routing messages
– Dealing with failures
– Polyglot messaging
– From dumb devices to smart orchestration
– Delayed delivery
– Let’s escape! A full play through of our escape room

This will give attendees an overview of the basic patterns of distributed systems enabling attendees to see how to transition their current systems to a better distributed systems architecture. Attendees will also get a basic introduction to IoT devices.

## 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:

Either:

* Recommended: Visual Studio 2022 with the [Nanoframework extension installed](https://docs.nanoframework.net/content/getting-started-guides/getting-started-managed.html)
* VS Code with [Nanoframework add-on installed](https://docs.nanoframework.net/content/getting-started-guides/getting-started-vs-code.html)

NOTES:

* The NanoFramework does not work with Jetbrains Rider.
* The NanoFramework extenions will not work on 32 bits OSs or ARM platforms.
* If you are bringing an ARM CPU machine, then you will have to have access to a cloud VM to do some parts of the workshop development. The bulk of the workshop will work on ARM CPU devices though.