This example shows you how to use EventCatalog federation to connect multiple EventCatalog instances together.
In this example we have three teams customer-experience-team, order-management-team and payment-team. Each team has their own EventCatalog instance and keeps there catalog close to their code.
We also have a central EventCatalog instance that is used to view all the teams catalogs and merge them together using federation.
Federation can help large organizations and teams to:
- Keep their catalog close to their code (no need to swap context)
- Keep their catalog up to date with their code
- Merge many catalogs into a single catalog for an organization
- Create a single source of truth for an organization
- Ease the burden of keeping multiple catalogs in sync
- Ease the burden of keeping documentation up to date as it's close to the code
- Surface relevant information from across an organization
- Teams create their own EventCatalog instance. This can be next to the their code or where ever they want.
- Teams generate there documentation (using plugins or just manual).
- They commit their documentation to their repository.
- The central catalog is created, and using the federation plugin it merges many catalogs together into one view.
- The central catalog is hosted for the organization where people can view the merged catalog and single source of truth.
Making changes to catalogs
- Teams continue to make changes to their own catalogs as they always have.
- The central catalog is updated using the federation plugin and changes are merged into the central catalog.
- The central catalog is rebuilt and redeployed.
- Clone the repository and go into the
central-catalogdirectory - Run
npm install - Get a Federation license key from EventCatalog Cloud (14 day trial)
- Run the generate command (this will merge many teams catalogs into one, in this example we are merging the
customer-experience-team,order-management-teamandpayment-teamcatalogs into one central catalog) - Run the catalog locally
- View your catalog at https://localhost:3000
