Write to Majority
Commits
Three of five nodes acknowledge the entry. The transition commits durably into immutable history.
Systems Architecture & Product Engineering
Product systems for fintech, identity, and operations.
Majority Quorum 3 of 5
State DurableMinority Partition 2 of 5
Writes StalledWrite to Majority
Commits
Three of five nodes acknowledge the entry. The transition commits durably into immutable history.
Write to Minority
Unknown
Two nodes cannot form quorum. The state engine stalls rather than presenting an unverified illusion of success.
Selected work
Property operations, identity and payments, and reconciliation. In each one the work was keeping a single version of the truth across product, services, and the release that carries them.
What happens when a release goes out
Build
The artifact is signed and versioned.
Canary
One percent of traffic takes the change first.
Rollout
Half the fleet is on the new version right now.
Health gate
Reads the traces, metrics, and logs the deploy already emits.
On regression the gate halts the release and returns it to build. The rollout stays half-finished and visible until someone decides.
A multi-surface property platform: billing, maintenance, people, devices, releases. The work was keeping one operating truth across product and infrastructure.
Shipping is a moment. Knowing whether the change is healthy is the work.
What happens when the provider answers
Provider responds
A redirect moves the browser. It proves nothing about the payment.
Record the transition
Every external answer becomes an event with an identity, so applying it twice changes nothing.
Reconcile
The user view is checked against the business record before anything moves.
Then the journey continues on one of two paths
Identity and payment flows where provider callbacks, retries, and user status must agree before value moves.
A redirect changes a browser. Verification changes the record.
Where a number comes from
Command accepted
A return, a split payment, a stock adjustment, an actor and a reason.
Event appended
Written once, in order, and never edited. Five events here; the same shape at any number.
Projection
The balance or stock total you actually read is rebuilt from those events.
Audit trail
Who moved it, why, and when — kept beside the projection, not reconstructed after a complaint.
If the total and the story disagree the events are the tiebreaker. The projection is rebuilt; the history is never rewritten.
A history-first model for stock, balances, returns, and split payments. Every number keeps a traceable reason.
The total is an answer. The history makes that answer believable.
Operating truths
01
State and invariants
Name what must stay true before you write the code.
Deterministic software starts with explicit boundaries: balances reconcile, identity can be re-proven, and state does not drift.
02
Commerce and trust
Certainty in the interface is not certainty in the record.
A callback is a message, not a settlement. Read the provider state before it is allowed to move a balance, and keep the screen honest about which of the two it is showing.
03
Release and drift
Shipping without evidence is just hoping in production.
Release health belongs in the pipeline. Canary gates and traces ship with the code, not after an incident.
Practice
Each discipline below is one rule I hold to. No benchmarks, no measured numbers — just the thing that has to stay true when a gateway answers late, a phone loses signal, or a release goes sideways.
01 — Integrations
Webhooks arrive late, twice, or not at all. Each one is an event with an identity, and applying it twice does nothing.
02 — Client architecture
A phone on a weak connection is still a correct client. Local state reconciles to the server deterministically on reconnect.
03 — System boundaries
Dependencies point inward. The domain never imports a framework, so the rules outlive the tools.
04 — Storage
Index for the query you actually run, and partition before the table is the problem rather than after.
05 — Quality
A change that breaks a promise fails the build. The pipeline is where you find out, not the customer.
06 — Security
Nothing mutates state until its signature is verified. Trust is a check that runs, not a header that is trusted.
Field notes
01
02
03