Skip to main content
⭐️ If you love EventCatalog, give it a star on GitHub. Thanks!

2 posts tagged with "EventCatalog"

View All Tags

Announcing the new EventCatalog SDK

· 2 min read
David Boyne
Founder of EventCatalog

I'm excited to announce the release of the new JavaScript/TypeScript EventCatalog SDK. This SDK is designed to help users programmatically interact with their EventCatalogs, streamlining the process of managing event-driven architectures.

EventCatalog aims to facilitate the discovery and documentation of event-driven architectures, regardless of the broker or technology used. The EventCatalog SDK is a step towards this vision.

Many EventCatalog users have requested integration support and automation capabilities (i.e GitHub Actions). With this SDK, we are starting to provide these options. Future releases will include broker integrations and plugins, expanding the SDK's functionality.

The new SDK enables CRUD operations on your domains, services, and messages within your Catalog. Additionally, it allows you to add files and schemas to these resources, enhancing your ability to manage and document your event-driven architecture efficiently.

Getting Started

First, install the SDK by running:

pnpm add @eventcatalog/sdk

Next, you need to initialize the SDK with the location of your catalog:

import utils from '@eventcatalog/sdk';

// tell utils where your EventCatalog path is
const { getEvent, writeEvent, versionEvent, rmEventById } = utils('/my-eventcatalog');

// Write an event to EventCatalog (this would go to events/InventoryAdjusted)
await writeEvent({
id: 'InventoryAdjusted',
name: 'Inventory Adjusted',
summary: 'Event raised when inventory has been adjusted',
version: '1.0.0',
markdown: `## Overview
Inventory Adjusted is triggered when the inventory has been changed.
<NodeGraph />
`
})

// Get an event based on it's ID
const event = await getEvent('InventoryAdjusted');

// Get an event based on its ID and version
const event = await getEvent('InventoryAdjusted', '0.0.1');

// Take the latest event and version it
await versionEvent('InventoryAdjusted');

// Remove the event from EventCatalog
await rmEventById('InventoryAdjusted');

You can find the complete documentation for the SDK on our documentation website.

What's next?

We will continue to add new features to the SDK, with a major focus on open-source plugins and broker integrations.

A variety of open-source EventCatalog plugins will be developed, along with a CLI to create new plugins. EventCatalog will support configuration with both custom and off-the-shelf plugins, allowing integration with schema registries, AsyncAPI files, and more.

If you have any questions, feature ideas, or would like to discuss EventCatalog features with your team, join our Discord community.

Introducing EventCatalog v2

· 3 min read
David Boyne
Founder of EventCatalog

Event-driven architectures share a common challenge: their complexity can quickly escalate as more domains, services, and messages are added.

As business requirements evolve and teams adapt, governing and understanding this distributed architecture becomes increasingly difficult. What begins as a straightforward system often transforms into a complex structure with minimal documentation and discoverability, leaving most people struggling to comprehend it (I share my thoughts on EDA complexity in this GOTO EDA Day 2024 keynote).

In January 2022 EventCatalog v1 was launched to help bring discoverability and documentation to event-driven architectures. Since its inception, EventCatalog has seen over 13,000 catalogs created, attracted 45 contributors, grown a community of more than 600 members on Discord and was added to Thoughtworks Technology Radar.

The growing popularity of EventCatalog in recent years highlights the challenges of complexity in building event-driven architectures. It also highlights the importance of discoverability and documentation. That's why I'm excited to announce the release of EventCatalog v2.

EventCatalog V2

Example of EventCatalog v2

EventCatalog (v2) has been completely rewritten from the ground up, incorporating lessons from EventCatalog v1 and introducing a host of new features on a fresh foundation. These enhancements include:

  • A refreshed UI and improved developer experience (demo)
  • Documentation for new resources: domains, services, and messages (commands, events, and soon, queries)
  • Visualizer support for all resources within EventCatalog
  • A new discoverability feature that enables quick filtering and searching for resources in a tabular format (demo)
  • Versioning capabilities for domains, services, and messages
  • New landing pages for users and teams (demo)
  • Rewritten using Astro for faster build times and reduce complexity
  • Hot-reload support for catalog changes
  • New components for your catalogs (read more)
  • Ability to search your catalog (demo)
  • Enterprise support
  • And much more...

This new foundation enables faster development and future feature support, including schema registry, API support, broker integrations (plugins), and more.

If you already have a previous version of EventCatalog you can read the migration guide.

Getting started

You can use the EventCatalog CLI tool you can create an EventCatalog in seconds.

# Install your new catalog
npx @eventcatalog/create-eventcatalog@latest [name]

# Example
npx @eventcatalog/create-eventcatalog@latest my-catalog

Read the installation guide for more information.

Already have an EventCatalog? Read the migration guide.

Introducing enterprise support

EventCatalog now offers enterprise support, this support includes priority support, private support channels, custom integrations, priority feature development and more.

If you are using EventCatalog and would like to work together you can contact us on hello@eventcatalog.dev or read more details on the enterprise support page.

What’s next?

EventCatalog v2 is just the start, next on the roadmap (July 2024) is plugin support and plugin documentation. EventCatalog's vision is to integrate with any broker in the world, which will be powered by custom plugins.

Integrations into EventCatalog

Other features include EventCatalog as a schema registry, API support, single sign on support, hosting options and much more.

If you have an idea for a feature or any questions feel free to raise an issue or join us on Discord.

Summary

Complexity in event-driven architectures is inevitable, but we believe it can be managed through effective governance and documentation.

EventCatalog was initially created to assist teams in documenting their event-driven architectures and has proven valuable to hundreds of companies worldwide.

The new version of EventCatalog builds on this vision and mission, offering enhanced tools for managing the complexity of event-driven architectures through improved documentation and discoverability.

We are excited to see the possibilities and path that lie ahead.