mcpField
E
event-driven

event-driven

github.com/thebeardedbearsas开发107113 次安装今天更新
代码仓库

关于 event-driven

面向采用事件驱动架构的开发者,介绍事件溯源、CQRS、Saga 和事件总线等模式。资料包含事件重建、分布式事务协调及 Kafka 和 Symfony 代码示例。

主要功能

  1. 01事件溯源与状态重建
  2. 02CQRS 读写模型分离
  3. 03Saga 编排与协作模式
  4. 04Kafka 事件总线示例
  5. 05Symfony 领域事件示例

适用场景

  1. 01从事件日志重建应用状态
  2. 02将读取模型与写入模型分离
  3. 03协调微服务间的分布式事务
  4. 04通过事件触发领域操作

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/thebeardedbearsas/claude-craft --skill event-driven

安装后在 Claude Code 中输入/event-driven确认已加载。

详细介绍

事件驱动——事件溯源、Saga、CQRS

用于解耦和扩展性的事件驱动架构。

模式

事件溯源 — 存储事件,而非状态(审计、重放)
CQRS — 分离读写模型(投影)
Saga — 分布式事务(微服务)
事件总线 — 解耦的发布/订阅(Kafka、RabbitMQ)

事件溯源

events = [OrderCreated(...), OrderPaid(...), OrderShipped(...)]

def rebuild(events):
    state = {}
    for e in events: state = apply(state, e)
    return state

Saga — 编排与协同

协同 — 事件串联服务(解耦,但调试困难)
编排 — 中央协调器(清晰,但耦合)

Choreo: OrderCreated → Payment → Shipping
Orchestrator: ProcessPayment() → ShipOrder()

Kafka 事件总线

// Producer
producer.send({ topic: 'orders', messages: [{ ... }] });

// Consumer
consumer.run({
  eachMessage: async ({ message }) => {
    handleEvent(JSON.parse(message.value));
  }
});

领域事件(Symfony)

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

评论

支持 Markdown