---
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
