The Discipline of Data Platforms
A companion volume examining contracts, tasks, determinism, versioning, drift, executable lineage, computational quality, quarantine, observability, SLAs, governance and the Data Platform as an internal product.
- 01
Contract-First Data Architecture: Meaning Before Movement
Data engineering is frequently organised around movement: extract a dataset, deliver it to a landing zone, transform it, and expose it to consumers. Yet movement is not the first architectural problem. Before any byte is transported, an organisation must decide what the transported representation is allowed to mean, which identities it carries, which temporal claims it makes, which qualities it guarantees, and under what conditions it may be reused. This essay develops a contract-first approach in which the Data Contract is treated as a semantic and operational institution rather than a decorative schema. It distinguishes physical schema, logical contract, behavioural guarantees, and governance policy; formalises compatibility and refinement; and examines the contract as a boundary object between producers, platform teams, domain owners, and consumers. The argument is both technical and philosophical: data does not become shared merely by becoming accessible. It becomes shared when the obligations that make interpretation possible are explicit, testable, versioned, and socially owned.
9 min read - 02
The Task as the Atomic Unit of Data Computation
*The task is often treated as an operational convenience: a box in an orchestrator, a scheduled job, a notebook, or a container invocation. This essay argues that the task should instead be understood as the atomic unit of accountable data computation. A task is not merely a step that runs; it is a typed transformation with declared inputs, outputs, preconditions, postconditions, quality obligations, provenance effects, and failure semantics. The essay formalises tasks as state transitions and morphisms over data contracts, distinguishes logical tasks from physical executions, examines composability in directed acyclic graphs, and relates task design to ideas from programming language semantics and the philosophy of action. The central claim is that a platform becomes intelligible when its smallest executable unit is also its smallest explainable unit. Granularity is therefore not only a performance concern. It determines whether lineage, replay, ownership, and change impact can be reasoned about without reconstructing intent from code after the fact.*
6 min read - 08
The task as a unit of organisational responsibility
3 min read - 03
Determinism Is Not Repetition: The Conditions of Reproducible Data
Data platforms frequently promise that the same input will produce the same output. The promise is attractive, but often false because “the same input” is defined too narrowly. A computation depends not only on source records but on code, configuration, reference data, library versions, execution engines, clocks, seeds, policies, and hidden environmental state. This essay distinguishes repetition, determinism, reproducibility, replicability, and auditability. It formalises a data computation as a function over an extended state space, examines sources of non-determinism in distributed and temporal systems, and proposes an evidence model for reproducible outputs. The philosophical question is one of identity through time: when are two executions instances of the same computation, and when is a numerically equal result merely accidental? The essay argues that reproducibility is not achieved by rerunning code but by preserving the computational world in which a claim was produced.
6 min read - 08
Designing for controlled reproducibility
3 min read - 04
Idempotence and the Right to Recompute
Idempotence is often introduced through the compact equation $F(F(x))=F(x)$. In production data platforms, however, the problem is not simply whether a pure function returns the same value when applied twice. Pipelines read mutable sources, create external effects, allocate identifiers, update state, and publish results to systems with their own transaction semantics. This essay develops idempotence as an end-to-end architectural property that enables safe replay, backfill, recovery, and historical correction. It distinguishes functional, operational, and observational idempotence; examines keys, checkpoints, merge semantics, and effect journals; and relates recomputation to a broader philosophy of corrigibility. A trustworthy platform must be able to revisit its own past without multiplying it. The right to recompute is therefore not an implementation convenience but a condition of accountable knowledge: claims may need to be corrected when code, definitions, reference data, or evidence improve.
8 min read - 05
Append-Only Architectures and the Ethics of Preserving History
Append-only architecture is commonly justified through auditability, recovery, and simplified concurrency. Its deeper importance is cultural. A mutable table tends to present the latest state as if it were the whole truth, whereas an append-only history records that every state was produced through events, revisions, and institutional decisions. This essay examines event histories, immutable logs, state derivation, bitemporal models, tombstones, corrections, and retention. It formalises state as a fold over ordered events and explores when append-only design is algebraically safe. It also addresses limits: infinite retention is neither technically neutral nor ethically desirable, and immutability can conflict with privacy, legal erasure, and minimisation. The argument is that preserving history is an ethical commitment only when history remains interpretable, governed, and proportionate. A platform should remember enough to explain itself, but it should not convert technical memory into indiscriminate surveillance.
8 min read - 06
Versioning the Meaning of Data
Software teams routinely version code and schemas while treating meaning as if it were timeless. In reality, the interpretation of a field, status, metric, population, or Data Object changes through policy, organisational practice, scientific knowledge, and regulatory context. This essay argues that semantic versioning must extend beyond interface syntax to the meaning of data itself. It distinguishes data, schema, transformation, vocabulary, metric, and policy versions; proposes formal models for validity intervals and semantic compatibility; and examines historical restatement. The essay also considers the philosophical problem of conceptual change: when a category evolves, are old and new records instances of one concept or different concepts sharing a name? A mature Data Platform should not merely preserve values. It should preserve the interpretive regime under which values became claims.
7 min read - 07
Schema Drift and Semantic Drift
*Schema drift is visible: columns appear, types change, fields disappear, nested structures move. Semantic drift is often invisible: the same field continues to arrive under the same name and type while its operational meaning, population, timing, or institutional use changes. This essay distinguishes structural and semantic drift, formalises them as different distances between successive source states, and examines detection through contracts, distributions, invariants, vocabularies, and human observation. It argues that compatibility testing focused only on syntax creates a false sense of stability. A platform must observe not only whether data can still be parsed, but whether the claims encoded by the data remain comparable through time. The philosophical theme is continuity: technical identity does not guarantee conceptual identity, and change can occur beneath an unchanged sign.*
7 min read - 08
From Conceptual Lineage to Executable Lineage
Lineage diagrams often show that a source contributes to a dataset or that a process touches a Data Object. Such maps are valuable, but they do not yet explain how a particular output attribute was computed, which predicate filtered a record, which reference version supplied a code, or which policy authorised publication. This essay develops a layered model of lineage from conceptual relevance to executable derivation. It formalises lineage as a typed, versioned, temporal provenance graph; distinguishes data, control, semantic, policy, and decision dependencies; and examines the conditions under which lineage can support impact analysis, replay, and explanation. The argument is that lineage becomes operational only when it can participate in computation. A picture documents architecture; executable lineage constrains and directs it.
7 min read - 09
Data Quality Is a Computational Property
*Data quality is often organised as a terminal inspection: after ingestion and transformation, a suite of checks decides whether the dataset is good. This essay argues that quality is not an external label attached to a finished product but a computational property produced, transformed, and sometimes degraded at every stage. It develops a multidimensional quality model, distinguishes intrinsic, contextual, representational, and process quality, and formalises quality propagation through tasks. It addresses uncertainty, thresholds, fitness for purpose, and the dangers of composite scores. The philosophical claim is that “correct data” has no universal meaning independent of use. Quality must be specified relative to the claims a dataset is expected to support, while still preserving objective constraints such as identity, units, and temporal coherence.*
5 min read - 10
Quality and the politics of acceptable error
3 min read - 10
Selective Quarantine: Failure Without Total Arrest
Data pipelines are frequently governed by a binary imagination: a run succeeds or fails, a dataset is accepted or rejected, a record is valid or invalid. Real information systems contain partial defects, uncertain identities, late events, incompatible units, and policy exceptions that do not justify either silent acceptance or total stoppage. This essay develops selective quarantine as a formal and operational pattern for isolating defective subsets while preserving valid flow. It distinguishes rejection, quarantine, degradation, and remediation; formalises partition conservation and re-entry; and examines how quarantine interacts with identity, lineage, metrics, and service-level objectives. The broader philosophical argument concerns the treatment of anomalies. A mature platform neither normalises every exception nor allows the exceptional record to paralyse the whole. It creates a governed intermediate space in which uncertainty remains visible and correctable.
6 min read - 11
Observability Beyond Logs
Logs record events emitted by software, but they do not by themselves make a Data Platform observable. A pipeline can be technically healthy while producing stale, incomplete, semantically shifted, or policy-inadmissible data. This essay develops observability as the capacity to infer internal computational and data states from external signals. It distinguishes infrastructure, execution, data, semantic, lineage, and policy observability; formalises observability through state-space models; and examines metrics, traces, profiles, invariants, and active probes. It also addresses the limits of dashboards and alerting. The philosophical issue is one of knowability: a platform must not only operate but expose enough evidence to determine what kind of state it is in and what its outputs are entitled to claim.
6 min read - 10
Observability debt
3 min read - 12
Data SLAs: Time as an Architectural Contract
*Time is commonly expressed in Data Platform service agreements through a single phrase such as “daily by 08:00” or “latency below one hour.” These promises conflate event occurrence, source availability, ingestion, processing, validation, publication, and consumer visibility. This essay develops temporal service levels as explicit architectural contracts. It distinguishes latency, freshness, availability, completeness, and recovery; formalises percentile and window-based objectives; and examines late data, watermarks, and dependency budgets. It also argues that time is not merely a performance dimension. Temporal guarantees shape which claims can be made and which decisions are legitimate. A dataset that is technically available may be too stale for action, while a fresh partial dataset may be more dangerous than a delayed complete one.*
8 min read