--- title: EventCatalog created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, development, documentation, event-driven, kafka, architecture, markdown] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Development, https://github.com/event-catalog/eventcatalog] --- # đŸ’» EventCatalog > **La documentation vivante pour architectures event-driven** : cataloguez vos Ă©vĂ©nements, services, producers et consumers (Kafka, RabbitMQ, AWS EventBridge), visualisez le flux, et maintenez la doc Ă  jour automatiquement. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [eventcatalog.dev](https://www.eventcatalog.dev/) | | **GitHub** | [event-catalog/eventcatalog](https://github.com/event-catalog/eventcatalog) | | **License** | MIT | | **Langage** | TypeScript (Astro + React) | | **Étoiles GitHub** | 2,7k ⭐ | | **DerniĂšre MAJ** | 2026-06-07 | | **CatĂ©gorie** | [[cat-development\|Development]], Documentation / Architecture | ## 📝 Description **EventCatalog** est un **catalogue de documentation dĂ©diĂ© aux architectures event-driven** : il permet de documenter formellement vos **Ă©vĂ©nements, schĂ©mas (Avro/JSON Schema/Protobuf), services, topics, producers, consumers**, et de **visualiser les flux** entre eux. DĂ©veloppĂ© par David Boyne, c'est aujourd'hui l'outil de rĂ©fĂ©rence pour les Ă©quipes qui construisent des plateformes Kafka ou RabbitMQ Ă  grande Ă©chelle. L'idĂ©e directrice : dans une archi event-driven, **les Ă©vĂ©nements sont des contrats d'API** entre services. Ils doivent ĂȘtre **versionnĂ©s, documentĂ©s, dĂ©couvrables**, et **l'Ă©volution des schĂ©mas doit ĂȘtre tracĂ©e**. EventCatalog remplit ce rĂŽle en offrant un **portail centralisĂ©** oĂč l'on retrouve : la documentation de chaque Ă©vĂ©nement (Markdown enrichi), son schĂ©ma, les producers, les consumers, le versioning, l'historique des changements, et des diagrammes de flux auto-gĂ©nĂ©rĂ©s. EventCatalog supporte nativement les **standards de schema registry** (Confluent, Apicurio) et s'intĂšgre avec vos outils existants (AsyncAPI, OpenAPI). Les fichiers sont stockĂ©s en **Markdown/YAML versionnĂ©s dans Git** — la doc vit avec le code. **Public cible** : **architectes, Ă©quipes plateforme, devs Kafka/RabbitMQ, organisations event-driven matures**. ### FonctionnalitĂ©s principales - ✅ **Catalogage d'Ă©vĂ©nements** : nom, schĂ©ma, version, owners, sĂ©mantique - ✅ **Visualisation de flux** : graphe des producers → topics → consumers - ✅ **SchĂ©mas** : JSON Schema, Avro, Protobuf, AsyncAPI - ✅ **Versioning** : historique des changements, breaking changes dĂ©tectĂ©s - ✅ **Documentation Markdown** enrichie (MDX, composants custom) - ✅ **Git-as-database** : fichiers versionnĂ©s, PR-ables, code-reviewed - ✅ **Recherche full-text** dans tous les Ă©vĂ©nements - ✅ **Diagrammes auto** : Mermaid, PlantUML, graphes d'archi - ✅ **IntĂ©gration Confluent Schema Registry** (auto-sync) - ✅ **Multi-domaines** : un catalogue par bounded context - ✅ **Visualisation OpenAPI** pour APIs synchrones en complĂ©ment ## 🚀 Installation ### Via npx (le plus simple) ```bash npx eventcatalog@latest init mon-catalogue cd mon-catalogue npm run dev # → http://localhost:3000 ``` ### Via Docker (production) ```yaml # docker-compose.yml version: '3.8' services: eventcatalog: image: eventcatalog/eventcatalog:latest container_name: eventcatalog restart: unless-stopped ports: - "3000:3000" environment: EVENTCATALOG_HOST: "https://catalog.example.com" volumes: - ./catalog:/app/eventcatalog labels: - "traefik.enable=true" - "traefik.http.routers.catalog.rule=Host(`catalog.example.com`)" - "traefik.http.routers.catalog.entrypoints=websecure" - "traefik.http.routers.catalog.tls.certresolver=letsencrypt" ``` ### Installation manuelle ```bash git clone https://github.com/event-catalog/eventcatalog.git cd eventcatalog npm install npm run dev ``` ## ⚙ Configuration 1. **Structure Git** : `events/`, `services/`, `domains/`, `channels/` (topics) 2. **DĂ©finir un Ă©vĂ©nement** : `events/OrderCreated/index.md` + `events/OrderCreated/schema.json` 3. **RĂ©fĂ©rencer producers/consumers** : dans le frontmatter Markdown 4. **Configurer les schĂ©mas** : JSON Schema, Avro, Protobuf, ou pointer vers Confluent 5. **Custom domain/visualisation** : config dans `eventcatalog.config.js` 6. **CI/CD** : dĂ©ploiement auto sur push Git (Vercel, Netlify, ou Docker) ## 🔗 Alternatives - **Backstage** (Spotify) — Portail dĂ©veloppeur global (events = un module parmi d'autres) - **AsyncAPI Studio** — Éditeur de specs AsyncAPI, sans visualisation de flux - **Slate / Mintlify** — GĂ©nĂ©rateurs de docs API, pas spĂ©cifiques event-driven - **Bump.sh** — Doc OpenAPI/AsyncAPI, payant, hĂ©bergĂ© - **Confluent Docs** (Confluent Cloud) — VerouillĂ© Ă  la stack Confluent ## 🔒 SĂ©curitĂ© - **🔐 HTTPS obligatoire via [[app-traefik]]** : contient potentiellement des schĂ©mas sensibles (PII, donnĂ©es mĂ©tier) - **đŸ›Ąïž Authentification** : EventCatalog Pro propose SSO ; en community, mettre derriĂšre un VPN/Authentik - **🔒 Git privĂ©** : si la doc contient des infos sensibles, repo privĂ© obligatoire - **đŸ›Ąïž SchĂ©mas et PII** : Ă©viter de mettre des exemples de donnĂ©es rĂ©elles dans les schemas - **đŸ›Ąïž Webhooks d'intĂ©gration** : secrets stockĂ©s en variables d'environnement, jamais commit ## 📚 Ressources - [Site officiel](https://www.eventcatalog.dev/) - [Documentation](https://www.eventcatalog.dev/docs) - [GitHub event-catalog/eventcatalog](https://github.com/event-catalog/eventcatalog) - [DĂ©mo en ligne](https://demo.eventcatalog.dev/) - [Exemples Kafka](https://github.com/event-catalog/eventcatalog/tree/main/examples) ## 🔗 Pages LiĂ©es - [[cat-development]] — CatĂ©gorie Development - [[app-backstage]] — Portail dĂ©veloppeur global (Spotify) - [[app-traefik]] — Reverse proxy HTTPS - [[app-kafka]] — Event streaming (si dĂ©ployĂ©) - [[securisation-home-lab]] — Bonnes pratiques - [[recettes-docker-compose]] — Templates Docker