Files
2026-06-09 18:40:21 +02:00

6.0 KiB


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
GitHub event-catalog/eventcatalog
License MIT
Langage TypeScript (Astro + React)
Étoiles GitHub 2,7k
Dernière MAJ 2026-06-07
Catégorie cat-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)

npx eventcatalog@latest init mon-catalogue
cd mon-catalogue
npm run dev
# → http://localhost:3000

Via Docker (production)

# 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

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

🔗 Pages Liées