theJugglingCompany.com
Two hands with intertwined DNA-like light helix between them, representing system architecture
Tech & Systems

Every distributed
system has already
been thrown.

The club pass is a contract. The cascade is a load balancer. The cat's cradle is a service mesh. Juggling notation was solving distributed timing problems before distributed systems had a name for them.

Direct mappings

The vocabulary already existed.

Siteswap notation was invented in the 1980s to describe timing sequences across multiple concurrent objects. It is, in essence, an async timing model with handoff protocols.

Club pass API contract

Timing, handoff point, and shared protocol must be agreed before the throw.

Three-ball cascade Round-robin load balancer

Equal distribution, no queue backup, predictable arc per slot.

Cat's cradle Service mesh / event mesh

Strings are dependencies. Pull one and all others shift.

Drop and recover Graceful degradation

The pattern keeps running. The dropped prop is retrieved on the next open beat.

Siteswap notation Async timing model

Each number is the number of beats before that object is thrown again.

Multiplex throw Batch processing

Two objects leave one hand at the same time - higher throughput, more complex catch.

API contracts in motion

The club pass is a contract.

In club passing, two jugglers exchange props at agreed intervals. The contract has three terms: the timing window (when the pass leaves), the arc height (what trajectory to expect), and the catch position (where the receiver will be). Violate any one term and the pattern breaks.

API contracts work identically. The timing window is the SLA. The arc height is the payload structure. The catch position is the endpoint schema. When a service changes its payload without versioning the contract, the receiver is standing in the wrong place for a pass they did not know was coming.

What passes between us

The most important moment in club passing is not the throw. It is the half-second before, when both jugglers have already confirmed the contract through eye contact and body position. The throw is just execution. The agreement was made earlier.

In distributed systems, this is the handshake. The data in flight matters less than the protocol negotiated before the first packet left. Two services that speak the same protocol can drop packets gracefully. Two services that assumed agreement fail without knowing why.

Read: The Cascade as a Distributed System
Two hands with a magenta infinity pass between them, tracing the handoff arc
Hands holding neon strings in a cat's cradle formation, showing interconnected dependencies

The cat's cradle is a system.

Cat's cradle is a two-person string game where the pattern is transferred between hands while maintaining structural integrity. Pull one string incorrectly and the entire figure collapses. There is no partial failure - the topology either holds or it does not.

This is the event mesh model. In a properly configured service mesh, every service is connected to every other through the mesh fabric - not point-to-point, but topologically. A single misconfigured route does not just break one connection. It changes the shape of the whole.

The cloud and the arc

Cloud architecture made the arc invisible. When your application runs on managed infrastructure, you do not see the throw. You see the catch - the result, the latency, the response code. The arc happened in someone else's data centre, behind an abstraction layer that hides the trajectory.

Juggling makes the arc visible by definition. You cannot hide it. The ball in the air is evidence of a decision made 400 milliseconds ago. Distributed tracing is juggling's visibility applied to invisible systems.

Siteswap 3

Round-robin: equal arc, equal interval

Siteswap 0

Zero: the hand is empty, no object scheduled

Siteswap 4

Fountain: each hand runs its own independent loop

Multiplex

Batch: two thrown simultaneously, complex catch

Read: Siteswap as a Programming Language

The change has a structure.

DNA is a double helix: two strands, complementary, running antiparallel. The information in one strand determines the other. Neither is primary. Both are required. Change in any organisation has the same topology - a technical strand and a human strand, antiparallel, each defining the other.

When cloud migrations fail, the technical strand usually worked. The failure was in the human strand - the teams that did not understand the new deployment model, the security teams that were not looped in, the product managers who kept shipping features while the foundation was being replaced.

Read: Balls, Clubs, and Rings - AI Agents

Patterns as system models

Siteswap notation was invented to solve distributed timing. Each number is the time-to-next-throw for that object. It is a scheduling algorithm expressed as a juggling pattern.

Animated juggling pattern: Cascade (Siteswap 3), siteswap 3 Beginner

Siteswap 3

Cascade (Siteswap 3)

Round-robin: each object takes 3 beats before returning. Equal load, equal distribution, no priority queue.

Animated juggling pattern: Fountain (Siteswap 4), siteswap 4 Intermediate

Siteswap 4

Fountain (Siteswap 4)

Each hand runs independently. Two parallel loops, no cross-traffic. The microservice model.

Animated juggling pattern: Async Sequence (534), siteswap 534 Advanced

Siteswap 534

Async Sequence (534)

Three different timing windows. The 5 is in flight while the 3 lands and the 4 is scheduled. Concurrent async operations.