After you have heard about messages, variables, filtering and presence, let’s go into larger building blocks of designing systems. The first concept is a state machine, a way to capture the current state of a collection of clients: when the state changes, all clients need to be notified and change their behavior accordingly. Synchronization is the second building block, which allows to tightly synchronize a collection of clients to a shared clock or beat. Then there is coordination that helps in distributing roles in a system of products. The fourth block is discovery and it collects data from all clients on a channel and delivers an overview, e.g., about the temperature in a house. The last block, negotiation, is quite similar to the discovery component: it collects the data from all clients and then forms an decision which is sent back to all clients.