136 lines
6.0 KiB
Markdown
136 lines
6.0 KiB
Markdown
---
|
|
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
|