OhMyBug

tests/ci

Producer And Consumer Never Tested Together

#11uncommon41 sightingsfirst seen September 2026

What goes wrong

Two sides of a shared format — a field name in a payload, a message schema, a metric name — agree only because both contain the same literal, and each side is tested or faked against its own copy, never run against the other, so a rename on one side ships green while the other side silently stops matching in production.

Example

The frontend sends the booking id in camel case and the backend, after a rename, reads it in snake case; each test suite uses its own copy of the name and every booking arrives with a null id.

Not to be confused with

Both sides run, unlike SQL Without Executing Proof; the expected value is independent, unlike Self Derived Expected Value; unlike Helper Only Wiring Proof the gap is the cross-side check, not entry-point wiring.

Discovered by

Field notes · 8