CQRS и Event Sourcing: паттерны для сложных доменов
CQRS и Event Sourcing решают проблемы сложных доменов с высокими требованиями к аудиту.
CQRS (Command Query Responsibility Segregation)
Commands: изменяют состояние (write). Queries: читают данные (read). Разные модели: оптимизация под задачу. Разные хранилища: SQL для writes, NoSQL для reads. Масштабирование независимо.
Event Sourcing
Сохранение всех изменений как событий. Текущее состояние — результат применения событий. Полный audit trail. Возможность "путешествия во времени". Идеально для финансовых транзакций и compliance.
Применение в игровых платформах
Betting history: все ставки как события. Balance changes: каждая транзакция сохраняется. Audit trail: регуляторы требуют полную историю. Replay: воспроизведение любого момента. Compliance: доказательство корректности.
Trade-offs
Сложность: значительно сложнее CRUD. Eventual consistency: read model отстает. Storage: хранение всех событий требует места. Migration: сложность изменения схемы событий. Использовать только когда действительно нужно.