EventCatalog Documentation

repository·main·Indexed 25 days ago

https://github.com/event-catalog/eventcatalog

An open-source documentation tool for software architectures, specifically designed for event-driven systems. It enables teams to document domains, services, messages, and schemas with features for visualization, schema exploration, and AI-powered discovery. The ecosystem includes a CLI (@eventcatalog/cli) for resource management and DSL export, connectors for syncing GitHub and Microsoft Entra ID directories, a linter for documentation quality, and NodeGraph components for rendering architecture graphs in Astro and MDX.

Tokens
341.1K
Snippets
947
Records
1.7K
Agent score
81%

What's inside EventCatalog

  1. Overview of EventCatalog packages

    main

    EventCatalog is composed of several specialized packages depending on your use case:

    • @eventcatalog/core: The main catalog application built with Astro and React.
    • @eventcatalog/sdk: A Node.js SDK designed for programmatic management of your catalog.
    • @eventcatalog/create-eventcatalog: The CLI scaffolding tool used to initialize new projects.
    • @eventcatalog/visualiser: A standalone React component for visualizing architecture.
  2. Overview of Slack integration

    main
    The EventCatalog Slack Bot allows teams to query architecture documentation directly from Slack by connecting to your EventCatalog MCP server. Users can ask questions about events, services, domains, and schemas via @mentions or in dedicated channels. The bot provides AI-powered responses in threads to maintain channel organization. It is self-hosted, meaning you own your data and deployment, and it supports Socket Mode so no public URL or webhooks are required.
  3. Overview of EventCatalog Editor

    main

    EventCatalog Editor is a local visual editor designed for maintaining an EventCatalog. It allows users to edit architecture resources (such as domains, services, messages, and ownership) without working directly in Markdown or MDX files.

    Key capabilities include:

    • Browsing Resources: Navigate domains, services, messages, channels, entities, data stores, flows, users, and teams.
    • Editing: Use a rich editor or source editor to update documentation and frontmatter fields via forms.
    • Schema Management: Add schemas to events, commands, and queries, or attach OpenAPI, AsyncAPI, and GraphQL specifications to domains and services.
    • Previewing: View resource changes in a running EventCatalog site.
    • Git Integration: Inspect local Git changes, view diffs, revert files, and commit work directly within the editor.
    • Collaboration: Invite editors via EventCatalog Cloud.

    Note: The editor is a seat-based paid product. Pricing tiers include Community (1 seat), Starter (3 seats), Scale (10 seats), and Enterprise (unlimited).

  4. Overview of EventCatalog Authentication

    main

    EventCatalog provides secure authentication to control access to your event-driven architecture documentation using industry-standard OpenID Connect (OIDC) and OAuth 2.0 protocols. It runs in SSR mode and utilizes Auth.js to manage authentication flows.

    Users are redirected to an identity provider (such as GitHub, Google, or Auth0), authenticate with their existing credentials, and are then redirected back to EventCatalog with access to the documentation.

  5. Overview of EventCatalog

    main

    EventCatalog is an open-source documentation tool specifically designed for software architecture. Unlike generic documentation tools, it focuses on architectural primitives such as domains, systems, services, APIs, contracts, and messages to create an internal architecture graph.

    Key capabilities include:

    • Architecture Modeling: Document domains, systems, and resources using familiar primitives.
    • AI Integration: Provides context for AI agents, LLMs, and workflows via an internal architecture graph and an MCP server.
    • Automated Documentation: Sync documentation from code, OpenAPI, AsyncAPI, or schema registries.
    • Breaking Change Detection: Detect breaking schema changes using the EventCatalog Agent.
    • Visualization: Visualize architecture, future ideas, and key business workflows.
    • Self-Hosted: You own your data and host it on your own infrastructure.
  6. Overview of EventCatalog Agents

    main

    The EventCatalog Agent is an AI-powered tool designed to help manage and document software architecture. It integrates into CI/CD pipelines to automate documentation updates and provides a governing layer for pull requests by understanding EventCatalog conventions such as domains, systems, and resources.

    Key capabilities include:

    • Automating documentation maintenance so you don't have to hand-write every catalog file.
    • Allowing you to define and bring your own model for documentation generation.
  7. Overview of EventCatalog Assistant

    main

    EventCatalog Assistant is an AI-powered chat interface embedded directly into your documentation site. It allows users to explore your software architecture documentation using natural language, helping them find answers and understand systems without manual searching.

    Key characteristics:

    • Model Agnostic: You bring your own AI model. It integrates with preferred models via the AI SDK.
    • Data Privacy: You own your data; it is never shared with EventCatalog.
  8. Introduction to the Apicurio Registry plugin

    main

    The Apicurio Registry plugin is a generator for EventCatalog that allows you to import schemas and specifications from an Apicurio Registry into your EventCatalog instance. This keeps your architecture documentation in sync with your registry while providing visualization, semantic context (via markdown), and AI-powered discovery capabilities.

    Supported Schema Formats:

    • Avro
    • JSON Schema
    • Protobuf
    • AsyncAPI
    • OpenAPI

    Key Capabilities:

    • Automatic versioning of schemas as they change.
    • Custom filtering (prefix, suffix, exact matches) to select specific schemas for import.
    • Assignment of schemas to specific services and domains.
    • Documentation of schemas as commands, events, or queries.
    • Support for Bearer token authentication for secured registries.
  9. Generate Services, Messages, and Schemas from Hookdeck

    main

    The Hookdeck plugin automates several EventCatalog components:

    • Services: Generated from Hookdeck Sources and Destinations used in Connections. Use connectionSourcedMatch (regex) to filter these.
    • Messages: Generated from Hookdeck Requests (received by a Source) and Events (received by a Destination). The plugin uses the processMaxEvents option to limit processing. It identifies unique message types by looking for a type or eventType property in the payload; if not found, every request/event is treated as a unique message.
    • Message Schemas: Since Hookdeck does not support schemas, the plugin infers schemas from the first instance of an Event or Request type it processes.
    • Filter Insights: The plugin helps identify Hookdeck Filters by showing Requests that are received by a Service but are not connected to a destination Service.
  10. How the editor finds a catalog

    main

    When running npx @eventcatalog/editor, the editor attempts to locate a catalog directory using the following priority order:

    1. The path explicitly provided via the --catalog flag.
    2. The current working directory, provided it contains an eventcatalog.config.js file.
    3. The first child directory encountered that contains an eventcatalog.config.js file.
    4. The path manually entered in the catalog path screen in the browser.