Forward and backward compatible wire rules for changing schemas

Protobuf lets old and new services talk

A gRPC service and its clients ship on their own schedules, so the schema has to change while both old and new binaries are running. Protobuf is built for exactly that: the compatibility contract lives in field numbers and wire types rather than in names, and a reader that does not recognise a field skips it instead of failing. ...

February 26, 2028 · 4 min · XB Field Notes
Two tables connected by a constraint that refuses to store a broken reference.

Foreign keys keep references honest

A foreign key makes a relationship enforceable during ordinary database writes. A task can reference an existing project, and the database can reject an unknown project identifier even when an import or a new application code path forgets to check it. The constraint defines referential integrity; it does not decide whether the selected project is the correct one for the business operation. ...

May 25, 2027 · 5 min · XB Field Notes
A schema going through additive then phased steps while traffic stays up.

Zero-downtime migrations change schema while old code runs

A migration that rewrites a busy table in one committing statement is long and blocking. A sequence of small, backward-compatible changes moves the same schema forward with no maintenance window, because each step is separately deployable and separately reversible. What is being managed is a lock, and the question is how long it is held — which depends on how much data the statement touches. ...

November 3, 2026 · 5 min · XB Field Notes