Writing topic
Software design
Technical writing by Tô Gia Bảo on software design.
← All writingStart With the Decision, Not the Stack
A production data architecture starts with the decision it must support. Define the output grain, freshness, correctness and repair promise before choosing the tools.
Production Must Confirm the Release
A rollout becomes the current release only when production evidence matches the intended artifact, configuration, schema and functional path.
Deployment Is a State Transition
A production change is safer when provisioning, schema compatibility, rollout and verification move through named states with explicit stop conditions.
A Container Needs a Runtime Contract
A stable image becomes a reliable service only when configuration, secrets, state, probes and shutdown behaviour have explicit owners.
The Image Is the Release
Build once, name the result by digest and let environments configure the same artifact instead of quietly creating different releases.
Proving a Pipeline Is Replayable
Replayability becomes credible when controlled failures produce independently observed evidence that named invariants still hold.
Validation Is Not a Publish Protocol
Passing checks matters only when the evidence, candidate and reader-visible commit belong to the same revision.
Late Data Without Endless Reprocessing
A correction window should bound automatic work without turning older truth into dropped data or a full-history rebuild.
Idempotent Writes Are Not Replay Safety
A table can converge perfectly while the workflow around it still repeats the wrong effect.
Backfills Are a Data Model Problem, Not an Airflow Feature
A scheduler can recreate yesterday's run. Only the data model can make that run safe to publish again.