liveBook · Manning

Synchronization point

As explained in Elixir in Action, Third Edition

A synchronization point is a component or operation through which competing executions are coordinated to enforce a required ordering.

A synchronization point coordinates competing executions by routing every request for one logical resource through the same process. In a to-do cache, the server process for Bob’s list serializes modifications, preserves consistency, and prevents race conditions. The same property must hold across cluster nodes, where discovery must identify one responsible process until it crashes. section 12.2.2

Cluster-wide to-do ownership

Register each Todo.Server with a cluster-wide :global alias, locate it with :global.whereis_name/1, and have Todo.Cache start or reuse the corresponding supervised process. This preserves one synchronization point per to-do list across nodes; a crash remains the practical boundary of that ownership. section 12.2.2

Figure 12.2 Using a to-do cache
CH12_F02_Juric3

Use the system diagram to trace requests from the distributed cache to the single process coordinating each to-do list. section 12.2.2

How Elixir in Action, Third Edition covers it

How deep it goes
Explains the process-level mechanism, cluster-wide discovery, and crash boundary without detailing recovery behavior.
Examples
Uses a to-do cache, Bob’s list, Todo.Server, :global registration, and DynamicSupervisor process discovery.
What it assumes
Assumes process-based concurrency and local registration, then extends discovery to cluster-wide aliases.
What you can do after
Apply via Elixir process registration and DynamicSupervisor to coordinate per-list requests across cluster nodes.
How it connects
Connects consistency, race conditions, process registration, supervision, and distributed systems.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Elixir in Action, Third Edition. The section links point to the parts of the book it draws on.