Features
Using filters to map schemas to your services​
EventCatalog plugin supports a comprehensive range of filters to give you precise control over which schemas map to your services:
schemaName- Exact matching on the schema nameprefix- Matches schemas that start with the specified prefixsuffix- Matches schemas that end with the specified suffixincludes- Matches schemas that contain the specified text (supports arrays)tags- Matches schemas with specific tag key-value pairsdataFormat- Matches schemas by format (AVRO, JSON, PROTOBUF)
You can use these filters to map schemas directly to your services, giving you flexibility on how you want to structure your EventCatalog and map events to services.
All filters can accept either a single string value or an array of strings for multiple matching criteria.
schemaName example​
Match schemas by their exact name:
generators: [
[
'@eventcatalog/generator-aws-glue',
{
region: 'us-east-1',
registryName: 'my-event-registry',
services: [
{
id: 'Customer Service',
version: '1.0.0',
sends: [{ schemaName: ['CustomerCreated', 'CustomerUpdated'] }],
receives: [{ schemaName: 'OrderPlaced' }]
},
],
},
],
],
prefix example​
Match schemas that start with a specific prefix:
generators: [
[
'@eventcatalog/generator-aws-glue',
{
region: 'us-east-1',
registryName: 'my-event-registry',
services: [
{
id: 'Customer Service',
version: '1.0.0',
sends: [{ prefix: ['Customer', 'User'] }],
receives: [{ prefix: 'Order' }]
},
],
},
],
],
suffix example​
Match schemas that end with a specific suffix:
generators: [
[
'@eventcatalog/generator-aws-glue',
{
region: 'us-east-1',
registryName: 'my-event-registry',
services: [
{
id: 'Event Service',
version: '1.0.0',
sends: [{ suffix: ['Created', 'Updated'] }],
receives: [{ suffix: ['Completed', 'Failed'] }]
},
],
},
],
],
includes example​
Match schemas that contain specific text anywhere in the name:
generators: [
[
'@eventcatalog/generator-aws-glue',
{
region: 'us-east-1',
registryName: 'my-event-registry',
services: [
{
id: 'Analytics Service',
version: '1.0.0',
// Single string
sends: [{ includes: 'analytics' }],
// Array of strings - matches schemas containing ANY of these
receives: [{ includes: ['customer', 'user', 'profile'] }]
},
],
},
],
],
dataFormat example​
Match schemas by their data format:
generators: [
[
'@eventcatalog/generator-aws-glue',
{
region: 'us-east-1',
registryName: 'my-event-registry',
services: [
{
id: 'Streaming Service',
version: '1.0.0',
sends: [{ dataFormat: ['AVRO'] }],
receives: [{ dataFormat: ['JSON', 'PROTOBUF'] }]
},
],
},
],
],
tags example​
Match schemas by their AWS tags. This is particularly useful for organizing schemas by team, environment, or purpose:
generators: [
[
'@eventcatalog/generator-aws-glue',
{
region: 'us-east-1',
registryName: 'my-event-registry',
services: [
{
id: 'Customer Team Service',
version: '1.0.0',
// Match schemas with specific tag
sends: [{ tags: { team: 'customer' } }],
// Match schemas with multiple tags (ALL must match)
receives: [{ tags: { env: 'prod', type: 'event' } }]
},
],
},
],
],
Combining multiple filters​
You can combine multiple filter types in a single filter object:
generators: [
[
'@eventcatalog/generator-aws-glue',
{
region: 'us-east-1',
registryName: 'my-event-registry',
services: [
{
id: 'Advanced Service',
version: '1.0.0',
sends: [
{
prefix: 'Customer',
dataFormat: 'AVRO',
tags: { team: 'customer' }
}
],
receives: [
{
suffix: 'Event',
includes: 'order',
tags: { env: 'prod' }
}
]
},
],
},
],
],
When multiple filter criteria are specified in a single filter object, ALL criteria must match for a schema to be included.
Persist markdown​
Your markdown is persisted between generation runs on EventCatalog. Initially the generator will generate markdown for you for your domains, services and events, but any edits to the markdown file will be persisted between versions.
This allows you to add custom components, our MDX components and customize your EventCatalog pages without losing changes when your schemas are versioned.
This can be useful for adding extra additional context to your events, example payloads, example CLI commands on how to produce/consume them and any other useful information.