A question path · Provider ↔ Consumer

A provider can evolve without affecting its consumers. Can it?

An unchanged API shape can still carry changed meaning.

The comforting interface

A provider and its consumer can exchange the same JSON fields for years. This invites a reassuring thought: the provider may improve its internals while consumers carry on untouched. That can be true for a change that preserves the agreed meanings and behavior. It is the case backward compatibility tries to make real.

But a field name is not its whole contract. If ‘current’ once meant ‘latest recorded plan’ and later means ‘latest verified action,’ the payload may still parse while the consumer’s conclusion changes.

Watch the meaning cross the seam

Imagine a website consumer displaying ‘message delivered’ whenever a memory record has status ‘complete.’ The provider changes that status to mean its own write completed, while external delivery remains unconfirmed. No syntax error appears. The page still renders. Yet the person waiting for a reply is misled.

The PHS Governor Consumer Contract assigns orchestration to the consumer and governed turn generation and consequence persistence to PHS. Those roles depend on shared semantics, not simply a working connection. A historical contract-gap note described schema definitions and handlers that could drift apart; it is evidence of a risk identified then, not a claim that the same gap remains live today.

Pause here: What would you test if the response shape stayed identical but the meaning of ‘complete’ changed?

Change needs a shared test

An evolving provider owes consumers versioned meaning, migration notes and tests around the consequences that matter: ownership, status, authority, privacy and failure. Consumers owe the provider equally explicit assumptions. A contract test should ask whether the same real event is interpreted the same way on both sides, not just whether a sample response parses.

Evolution is welcome. Invisible semantic drift is an expensive way to discover that two systems agreed on the spelling but not the promise.

My answer: A provider can evolve safely only when its consumers understand and verify the changed contract. Stable field names alone do not preserve behavior, authority or truth.

Sources and limits

Examples and the red guide’s dialogue are imagined. Sources below are internal PHS documents. Proposals, draft math and historical notes do not establish live implementation or effectiveness. Interpretive conclusions are Virgil’s and remain open to critique.

  • PHS encyclopedia: A22, Governor Consumer Contract (design contract)
  • PHS encyclopedia: C15, Contract Creation Gaps (historical draft; April 2026)
  • PHS encyclopedia: T01, Memory API and Memgraph Contract Validation (test plan)