Designing Event Schemas for Long-Lived Contracts

A progression from naive schemas to stable envelope-based event contracts.