← back to log

Schema-first vs. contract-first: a false dichotomy

The debate between schema-first and contract-first API design has raged for years. We think both camps are solving the wrong problem — and c28n is our answer.

The schema-first vs. contract-first debate has consumed countless hours of engineering time. Schema-first advocates argue for defining data structures up front. Contract-first teams insist on API specifications first, with schemas derived from usage.

We think they’re both solving the wrong problem.

The Real Problem

Both approaches assume you control the entire pipeline. But modern data systems don’t work that way. You’re consuming from third-party APIs. You’re publishing to message queues that multiple teams read from. You’re working with legacy systems that have their own ideas about data shape.

The question isn’t “schema first or contract first?” It’s “how do we make data shape changes visible and survivable across systems we don’t control?”

Enter c28n

c28n doesn’t pick a side. It sits between your systems and theirs. It validates incoming data, yes. But it also tracks drift. It shows you when upstream schemas change. It lets you define transformations that coerce data into the shape you need.

Most importantly, it records everything. Every mismatch. Every coercion. Every transformation. So when something breaks at 2am, you have a complete audit trail.

The Payoff

We’ve been running c28n in production for six months. In that time, we’ve caught 14 upstream schema changes before they caused incidents. We’ve debugged data issues in minutes that used to take days. We’ve slept through the night.

Schema-first, contract-first — it doesn’t matter. What matters is having a system that can handle the messiness of real-world data pipelines. That’s c28n.