# Notify consumers of schema changes with Schema Registry events This project contains a pattern that allows you to listen to schema changes from Amazon EventBridge Schema Registry. Consumers can subscribe to any events they are interested in and use this CDK abstraction to listen to changes. Learn more about this pattern at Serverless Land Patterns: https://serverlessland.com/patterns/eventbridge-schema-notifications. For more details you can read the [pattern README](./cdk/README.md); Important: this application uses various AWS services and there are costs associated with these services after the Free Tier usage - please see the [AWS Pricing page](https://aws.amazon.com/pricing/) for details. You are responsible for any AWS costs incurred. No warranty is implied in this example. ## Requirements - [Create an AWS account](https://portal.aws.amazon.com/gp/aws/developer/registration/index.html) if you do not already have one and log in. The IAM user that you use must have sufficient permissions to make necessary AWS service calls and manage AWS resources. - [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) installed and configured - [Git Installed](https://git-scm.com/book/en/v2/Getting-Started-Installing-Git) - [AWS CDK](https://docs.aws.amazon.com/cdk/latest/guide/cli.html) installed and configured ## Deployment Instructions 1. Create a new directory, navigate to that directory in a terminal and clone the GitHub repository: ```bash git clone https://github.com/aws-samples/serverless-patterns ``` 2. Change directory to the pattern directory: ```bash cd serverless-patterns/eventbridge-enrichment-with-lambd/cdk ``` 3. Install dependencies: ```bash npm install ``` 4. From the command line, configure AWS CDK: ```bash cdk bootstrap ACCOUNT-NUMBER/REGION # e.g. cdk bootstrap 1111111111/us-east-1 cdk bootstrap --profile test 1111111111/us-east-1 ``` 5. From the command line, use AWS CDK to deploy the AWS resources for the pattern as specified in the `lib/cdk-stack.ts` file: ```bash npm run build && cdk deploy ``` ## How it works - When schemas are changed or added into your registry events are raised to your default event bus - Custom rule is setup (by your consumer using the CDK abstraction) to listen to events they are interested in. - Using the plugin architecture consumers are notified of any changes that happen. Currently supports Slack. - [Read more details here](./cdk/README.md) ## Testing Deploy the cdk stack, turn on your discovered schema registry for your EventBus. Raise events that either create a new schema or make changes to a schema (new properties on the event for example). This pattern will notify the consumers of these changes through Slack. ## Cleanup 1. Delete the stack ```bash cdk destroy ``` --- Copyright 2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: MIT-0