event-driven
Skill1 starsChanged 4 months agoMITView on GitHub
Arquitetura orientada a eventos: eventos vs comandos, brokers (Kafka/SQS/RabbitMQ), pub/sub, ordering, idempotência, outbox, sagas, event sourcing e CQRS. Use quando o usuário mencionar: "event-driven", "orientado a eventos", "Kafka", "fila de mensagens", "pub/sub", "message broker", "event sourcing", "CQRS", "saga", "processamento assíncrono", "eventos". Liga com [[system-design]].
6 other projects use a version of this.
Adopted by
Most recently taken up by
- TheBeardedBearSAS/claude-crafttheir own version, first seen Oct 29, 2026
- G1Joshi/Agent-Skillstheir own version, first seen Oct 13, 2026
- kid-sid/claude-spellbooktheir own version, first seen Oct 9, 2026
- vndee/engineering-skillstheir own version, first seen Mar 22, 2026
- brainbytes-dev/everything-claude-tradingtheir own version, first seen Mar 14, 2026
- ffsshhttiikk/opencode-agents-skillstheir own version, first seen Feb 28, 2026
Other versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- kid-sid/claude-spellbook★ 190same name
- TheBeardedBearSAS/claude-craft★ 108same name
- brainbytes-dev/everything-claude-trading★ 16same name
- G1Joshi/Agent-Skills★ 15same name
- vndee/engineering-skills★ 3same name
- ffsshhttiikk/opencode-agents-skills★ 2same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository70 other files it gives its agents.
- agent-creationSkill
- handoffSkill
- task-distributorSkill
- task-plannerSkill
- accessibilitySkill
- airbnb-designSkill
- airtable-designSkill
- atlassian-designSkill
- carbon-designSkill
- cloudscape-designSkill
- coinbase-designSkill
- discord-designSkill
- duolingo-designSkill
- figma-designSkill
- fluent-designSkill
- linear-designSkill
- material-designSkill
- meta-designSkill
- netflix-designSkill
- notion-designSkill
- nubank-designSkill
- one-ui-designSkill
- pinterest-designSkill
- polaris-designSkill
- premium-web-designSkill
- primer-designSkill
- reddit-designSkill
- revolut-designSkill
- robinhood-designSkill
- salesforce-lightning-designSkill
- slack-designSkill
- spectrum-designSkill
- spotify-designSkill
- stripe-designSkill
- tiktok-designSkill
- twitch-designSkill
- uber-base-designSkill
- vercel-geist-designSkill
- visionos-designSkill
- whatsapp-designSkill
- economicsSkill
- legal-basicsSkill
- negotiationSkill
- politicalSkill
- api-designSkill
- architectureSkill
- caching-strategiesSkill
- ci-cdSkill
- database-designSkill
- observabilitySkill
- payment-systemsSkill
- performanceSkill
- qaSkill
- refactoringSkill
- securitySkill
- system-designSkill
- testingSkill
- clone-websiteSkill
- graphifySkill
- remotionSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 5 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 22
Use quando: precisa desacoplar serviços, absorver picos, integrar N consumidores de um mesmo fato, ou processar async fora do caminho da …
- Distinctive: line 23
Não: use quando: um simples request/response síncrono resolve.
“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Event-Driven Architecture
Você atua como arquiteto de sistemas assíncronos. Eventos desacoplam no tempo e no espaço: o produtor não sabe (nem espera) quem consome. Isso dá resiliência e escala, ao custo de consistência eventual e debugging mais difícil. Escolha por necessidade, não por moda.
Evento vs Comando (não confunda)
- Comando: "faça X" — imperativo, endereçado a um destino, espera execução (
CreateOrder). - Evento: "X aconteceu" — fato no passado, sem destino, quem quiser reage (
OrderCreated). Eventos no pretérito, comandos no imperativo. Modelar comando como evento (ou vice-versa) gera acoplamento errado.
Quando usar (e quando não)
Use quando: precisa desacoplar serviços, absorver picos, integrar N consumidores de um mesmo fato, ou processar async fora do caminho da request. Não use quando: um simples request/response síncrono resolve. Event-driven adiciona broker, consistência eventual e complexidade de observabilidade — não é grátis.
Brokers — escolha pelo modelo
| Broker | Modelo | Bom para |
| Kafka | Log particionado, retenção, replay | Streaming, event sourcing, alto throughput, reprocessar |
| RabbitMQ | Fila com roteamento (exchanges) | Task queues, roteamento complexo, RPC async |
| SQS/PubSub | Fila gerenciada na nuvem | Simplicidade, escala, sem operar broker |
As duas leis do consumo
- Entrega é "pelo menos uma vez" — o mesmo evento pode chegar duplicado (retry, rebalance). "Exactly-once" é quase sempre uma miragem operacional. Portanto:
- Consumidores DEVEM ser idempotentes — processar o mesmo evento 2x = mesmo resultado. Use um
event_ide uma tabela de "já processados" (dedupe), ou operações naturalmente idempotentes (upsert).
Ordering
- Kafka garante ordem dentro de uma partição, não global. Use uma chave de partição estável (ex:
orderId) para que eventos do mesmo agregado fiquem ordenados. - Se você precisa de ordem global, provavelmente errou o design — reduza o escopo de ordenação.
Padrões essenciais
- Outbox — para publicar um evento e gravar no DB atomicamente: escreva o evento numa tabela
outboxna mesma transação do dado; um processo separado lê a outbox e publica. Evita o clássico "gravou no DB mas o broker caiu antes de publicar" (dual-write problem). - Saga — transação distribuída por passos com compensação: cada passo tem um "desfazer". Sem 2PC; se um passo falha, dispara compensações dos anteriores (ex: reserva estoque → cobra → se falha, estorna).
- Event Sourcing — o estado é a soma de eventos (não uma linha mutável). A fonte de verdade é o log de eventos; o estado atual é uma projeção. Dá auditoria e replay totais; custa complexidade e versionamento de eventos.
- CQRS — separa o modelo de escrita (comandos/normalizado) do de leitura (queries/desnormalizado/materializado). Combina bem com event sourcing, mas não exige.
- Dead-letter queue (DLQ) — eventos que falham N vezes vão para uma fila de "veneno" para inspeção, sem travar o pipeline.
Armadilhas
- Dual-write (gravar DB + publicar broker sem outbox) → inconsistência silenciosa.
- Consumidor não-idempotente → dado duplicado quando (não se) o evento reentregar.
- Event sourcing por hype → complexidade enorme sem necessidade de auditoria/replay.
- Eventos gigantes/CRUD-ados ("UserUpdated" com tudo) → acoplamento; prefira eventos de domínio específicos.
- Sem observabilidade → impossível rastrear um evento por N serviços (propague
trace_id, ver [[observability]]).
Recursos externos
| Recurso | O que pegar |
| Martin Fowler — Event-Driven / Sourcing / CQRS | Definições e trade-offs desses padrões. |
| Designing Data-Intensive Applications | Streams, ordering, consistência distribuída. |
| Confluent — Event-Driven / Kafka | Kafka, partições, outbox, exactly-once semantics. |
| microservices.io — Saga / Outbox | Padrões de dados distribuídos. |
| AWS — Event-driven architectures | SQS/SNS/EventBridge na prática. |
| [[system-design]] | Onde eventos entram na arquitetura em escala. |
Do / Don't
| Do | Don't |
| Evento = fato no passado | Modelar comando como evento |
| Consumidores idempotentes | Assumir entrega exactly-once |
| Outbox para publicar+persistir | Dual-write direto no broker |
| Chave de partição para ordem local | Depender de ordem global |
| Saga com compensação | Transação distribuída 2PC |
| DLQ + observabilidade | Perder eventos que falham em silêncio |
Checklist
- Eventos nomeados como fatos no passado; comandos separados
- Necessidade real de async justificada (não hype)
- Broker escolhido pelo modelo (log vs fila)
- Consumidores idempotentes (event_id + dedupe)
- Ordering via chave de partição onde importa
- Outbox para publish+persist atômico
- Sagas com compensação; DLQ para falhas; trace_id propagado
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

