Consumer Driven Contracts (CDC)
Потребитель (клиент) определяет формат и структуру данных, которые ему требуются от поставщика (сервера). Поставщик создает контракт, основанный на требованиях потребителя, и гарантирует, что он будет соблюдать этот контракт. Тестирование контракта выполняется на стороне потребителя. Основные преимущества: снижает связанность между сервисами, позволяет потребителям развиваться независимо от поставщиков. Недостатки: каждый потребитель может иметь свой контракт, что может привести к большому количеству контрактов для поставщика.
Producer Driven Contracts (PDC)
Поставщик (сервер) определяет формат и структуру данных, которые он предоставляет. Потребитель (клиент) использует контракт, определенный поставщиком. Тестирование контракта выполняется на стороне поставщика. Основные преимущества: единый контракт для всех потребителей, упрощает управление поставщиком. Недостатки: потребитель должен адаптироваться к контракту поставщика, изменения в контракте поставщика могут затронуть всех потребителей.
Сравнение
| Аспект | Consumer Driven Contracts (CDC) | Producer Driven Contracts (PDC) |
|---|---|---|
| Кто определяет контракт | Потребитель | Поставщик |
| Где тестят контракт | На стороне потребителя | На стороне поставщика |
| Связанность | Низкая | Высокая |
| Гибкость | Потребители более гибкие | Поставщик определяет гибкость |
| Количество контрактов | Может быть много (по одному на потребителя) | Обычно один (для всех потребителей) |
CDC лучше подходит для систем с большим количеством разнообразных потребителей и когда важно, чтобы потребители могли развиваться независимо. PDC подходит, когда поставщик имеет сильный контроль над предоставляемыми данными и изменения происходят не так часто.