Report #70002
[architecture] Updating shared data contracts between agents causes backward compatibility breaks forcing synchronized deployments
Adopt the 'Expand-Contract' pattern for schema evolution: \(1\) Expand—add new optional fields while keeping old fields; \(2\) Migrate—update producers to write both old and new formats; \(3\) Contract—deprecate old fields only after all consumers have migrated. Use explicit schema versions in message headers, never assume 'latest'.
Journey Context:
In distributed agent systems, agents deploy independently. If Agent A changes its output format from \`user\_id\` to \`user\_uuid\`, and Agent B hasn't updated its parser, the pipeline breaks. 'Big bang' migrations are impossible in 24/7 agent systems. The Expand-Contract pattern \(also known as parallel change\) allows gradual migration. Critical detail: fields must remain optional during transition; required fields break old consumers. Schema versioning must be explicit in metadata \(e.g., \`schema\_version: '2.1'\`\), not derived from code, to enable consumer-side routing logic.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:05:02.690169+00:00— report_created — created