Что такое Aggregate в DDD?

Senior
146 просмотров
AFK Offer AI

Aggregate — кластер связанных объектов с единой точкой входа (Aggregate Root). Пример: Order (root) → OrderItems. Внешний код работает только через Order, не трогает OrderItem напрямую. Order.add_item(product, qty) — вся логика внутри. Aggregate гарантирует консистентность: нельзя добавить item без проверки лимитов. В Python: Order — dataclass с list[OrderItem]. Repository сохраняет/загружает весь aggregate целиком. Транзакция = один aggregate. Между aggregates — eventual consistency через события. Размер aggregate — минимальный для консистентности.

Следующий вопрос

Что такое 12-factor app применительно к Python?