01 · Problem
Everyone in an insurance claim keeps their own copy.
A claim moves from broker to carrier to reinsurer to regulator, and today each party trusts its own record of what happened, which leaves no single ordered history everyone agrees on.
Carriers, brokers, reinsurers and regulators all need the same ordered history of a policy: created, claimed, approved, paid. InsureRaft replicates that history across a Raft cluster in C++ on NuRaft, so no single party's copy is the one everyone else has to trust.
Everyone in an insurance claim keeps their own copy.
A claim moves from broker to carrier to reinsurer to regulator, and today each party trusts its own record of what happened, which leaves no single ordered history everyone agrees on.
Make the replicated log the record.
Every policy and claim action, created, filed, approved, denied, paid, is a typed event appended to a Raft log. A write only commits once a quorum of nodes has it, so the log itself is the audit trail rather than a copy of one.
New parties join as learner nodes: a snapshot catch-up brings them to the current state with no downtime for the rest of the cluster.
“Exactly once” lives in one small set, in memory. A retried event is caught before it ever reaches the log.
Every event carries a globally unique event_id, and the state machine checks it against an in-memory set before applying anything: if it's been seen, the event is dropped before it touches policy or claim state. It is a few lines, not a dedup service, and it is what makes replaying the same event twice safe.