How we keep data in sync across the fleet

A ship at sea is not always a ship online. Satellite links drop, ports throttle bandwidth, and for hours at a stretch the vessel is on its own. Yet the work never stops: rosters change, certificates get signed, appraisals get filed. The question that shaped this part of CruiseControl was blunt. What happens when ship and shore both edit the same record while the connection is gone?
Offline-first, not offline-tolerant
Most systems treat the network as normal and the outage as an error. We inverted that. In CruiseControl the ship owns a full working copy of its own data, and every action a crew member or officer takes is written locally first. The interface never freezes waiting for a server on the other side of an ocean. Work continues at full speed whether the link is up, degraded, or dark.
When connectivity returns, the ship and shore reconcile. That reconciliation is where the hard engineering lives, because both sides may have changed the same thing in the meantime.
"The connection is the exception, not the rule. So we built for the outage and treated the signal as a bonus."
Resolving conflicts without losing work
Every change in CruiseControl carries a timestamp, an origin, and the version of the record it was made against. When two edits collide, we do not blindly pick the newest write and discard the rest. Instead the model resolves at the field level: if shore updated a crew member's contact detail and the ship updated their duty assignment, both survive, because they never touched the same field.
Genuine conflicts, where the same field changed on both sides, follow clear rules:
- Field-level merging so unrelated edits on the same record both persist.
- Authority rules that let the side responsible for a field win a true tie.
- A full history of every version, so nothing is ever silently overwritten.
- Flagging of the rare unresolved case for a human to confirm, rather than guessing.
Why it holds up across a fleet
Scaling this from one ship to a whole fleet means each vessel syncs independently and never waits on another. Shore assembles a coherent picture from many partial, out-of-order streams, and any ship can go dark for a day and rejoin without a painful catch-up. The result is a single source of truth that does not depend on everyone being online at once.
Crew rarely notice any of this, and that is the point. They log their hours, sign their forms, and update their records, and CruiseControl quietly makes sure that when the fleet comes back together, every edit is accounted for and nothing was lost to the gap in the signal.
Arian shapes CruiseControl product strategy, keeping the platform focused on the problems maritime teams actually face.

