Объясни и сравни паттерны: pub/sub, event streaming (Kafka), CQRS, transactional outbox. Как они комбинируются в реальной системе?