Player data in one call
Profiles load on join, save on leave and survive server hops, with session leases that never let two servers write the same data.
One write path
Every change runs through one transaction pipeline, so guards, reactions, replication and history all see the same thing.
Tested without Roblox
Every service sits behind an adapter with an in-memory mock, virtual time and fault injection, and the same contracts run against live services.