Most distributed systems fail before the first line of code is written.

The architecture looks fine on the whiteboard. The services are cleanly separated. The team is confident. Then six months later, every deploy is terrifying, every feature touches five services, and “microservices” starts to feel like a mistake.

The problem usually isn’t the technology. It’s the modelling.

I run workshops that teach teams how to think about distributed systems — how to draw the boundaries, choose the right communication patterns, and build something that matches how your organisation actually works.

Software Architecture Training with Stack Mechanics

What I Teach

Human Shaped Microservices

Most architecture training starts with technology: “here’s how to build a message queue,” “here’s a saga pattern.” Mine starts with the humans: how do your teams communicate? Where are the natural seams in your domain? What needs to be consistent, and what can afford to be eventually consistent?

The result is a system that feels coherent — not just to the architect who designed it, but to every developer who has to live in it.


The Workshops

1-Day Intensive — Foundations of Distributed Domain Modelling

A focused day for teams that are starting a distributed systems journey, or have already started and want to course-correct before things get expensive.

What we cover:

  • How to find the right service boundaries (and why “by noun” doesn’t work)
  • Synchronous vs asynchronous communication — when to use each, and why most teams overuse sync
  • The entity service antipattern — how to spot it and why it’s the most common mistake
  • Hands-on modelling exercises using your team’s own domain

Format: In-person or remote (half-day × 2 sessions). Up to 20 people.

Investment: Contact me to discuss.


3-Day Deep Dive — Build It Production-Ready

The full workshop. Three days that take a team from modelling first principles through to deploying something they’d actually run in production.

Day 1 — Model it: Domain-driven design applied to distributed systems. Finding boundaries, events, commands. Building the map before the code.

Day 2 — Build it: Hands-on implementation using Nimbus and .NET. Async messaging patterns, the outbox pattern, sagas.

Day 3 — Harden it: Observability, failure modes, operational concerns. The stuff most teams only learn when something breaks at 2am.

Format: In-person preferred; or remote delivered as 6 × half-day sessions (proven format). Up to 20 people at a time.

Investment: Contact me to discuss.


Not Sure Which Format Fits?

Get in touch for a chat - we can spend 20 minutes figuring out what your team actually needs before you commit to anything.


Who This Is For

These workshops are a good fit if:

  • Your team is building (or has built) a distributed system and something feels off — deploys are hard, changes ripple unexpectedly, nobody’s quite sure where the boundaries should be
  • You’re making the architectural decisions now, before you’re too deep to change course
  • You have a team of 10 - 20 engineers who will actually build and run the system
  • You want someone who has built and run distributed systems in production - not just taught theory

These workshops are probably not a good fit if you’re looking for a lecture-style course, or if your team isn’t going to be involved hands-on.


What Past Participants Say

"One of the single greatest pieces of technical training I've attended."

Chris Briggs, Development Lead, Lup Events

"The content was instantly applicable."

Patrick Freeman, Cloud Team Lead, Ellume Health

"I learned domain-driven design principles I was able to apply straight away."

Minna Yao, Engineering Manager, CashApp

Remote Workshops

All workshops are available in remote format. The 3-day workshop runs as six half-day sessions, which many teams find easier to schedule and easier to absorb. I’ve run this format successfully for teams across Australia.


Booking

I run a small number of workshops each year to keep the quality high. If you’re interested in running one with your team, the best first step is a short conversation.

Let’s chat.


About Damian

I'm a software architect and consultant with 25+ years of experience across enterprise companies and software startups, including work on some of Australia's largest and most trafficked platforms.

I created Nimbus — an open source .NET library for building event-driven distributed applications — which has been running in production at real companies since 2013. I deliver architecture training to engineering teams across Australia, and I'm the Technical Director of YOW! Conferences.

I speak at conferences and meetups on distributed systems, event-driven architecture, and domain modelling.