event-driven
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseEvent-Driven — Event Sourcing, Saga, CQRS
事件驱动架构 — Event Sourcing、Saga、CQRS
Architecture événementielle pour découplage et scalabilité.
事件驱动架构用于实现解耦与可扩展性。
Patterns
模式
Event Sourcing — Stocker events, pas état (audit, replay)
CQRS — Séparer Read/Write models (projections)
Saga — Transaction distribuée (microservices)
Event Bus — Pub/Sub découplé (Kafka, RabbitMQ)
CQRS — Séparer Read/Write models (projections)
Saga — Transaction distribuée (microservices)
Event Bus — Pub/Sub découplé (Kafka, RabbitMQ)
Event Sourcing — 存储事件而非状态(支持审计、重放)
CQRS — 分离读写模型(投影)
Saga — 分布式事务(微服务场景)
Event Bus — 解耦的发布/订阅(Kafka、RabbitMQ)
CQRS — 分离读写模型(投影)
Saga — 分布式事务(微服务场景)
Event Bus — 解耦的发布/订阅(Kafka、RabbitMQ)
Event Sourcing
Event Sourcing
python
events = [OrderCreated(...), OrderPaid(...), OrderShipped(...)]
def rebuild(events):
state = {}
for e in events: state = apply(state, e)
return statepython
events = [OrderCreated(...), OrderPaid(...), OrderShipped(...)]
def rebuild(events):
state = {}
for e in events: state = apply(state, e)
return stateSaga — Choreography vs Orchestration
Saga — 编排模式 vs 指挥模式
Choreography — Events chain services (découplé, debug dur)
Orchestration — Central coordinator (visible, couplé)
Orchestration — Central coordinator (visible, couplé)
Choreo: OrderCreated → Payment → Shipping
Orchestrator: ProcessPayment() → ShipOrder()编排模式(Choreography) — 事件串联服务(解耦,但调试困难)
指挥模式(Orchestration) — 中央协调器(可视化,但耦合度高)
指挥模式(Orchestration) — 中央协调器(可视化,但耦合度高)
Choreo: OrderCreated → Payment → Shipping
Orchestrator: ProcessPayment() → ShipOrder()Kafka Event Bus
Kafka Event Bus
javascript
// Producer
producer.send({ topic: 'orders', messages: [{ ... }] });
// Consumer
consumer.run({
eachMessage: async ({ message }) => {
handleEvent(JSON.parse(message.value));
}
});javascript
// Producer
producer.send({ topic: 'orders', messages: [{ ... }] });
// Consumer
consumer.run({
eachMessage: async ({ message }) => {
handleEvent(JSON.parse(message.value));
}
});Domain Events (Symfony)
领域事件(Symfony)
php
class OrderCreatedEvent {
public function __construct(public Order $order) {}
}
class SendEmail {
public function __invoke(OrderCreatedEvent $e) {
$this->mailer->send($e->order->email, 'Confirmation');
}
}Voir ,
@.claude/rules/21-cqrs.md@.claude/skills/async/SKILL.mdphp
class OrderCreatedEvent {
public function __construct(public Order $order) {}
}
class SendEmail {
public function __invoke(OrderCreatedEvent $e) {
$this->mailer->send($e->order->email, 'Confirmation');
}
}参考 ,
@.claude/rules/21-cqrs.md@.claude/skills/async/SKILL.md