Great article!
Can you elaborate more on how you document event types, producers and consumers to make the overall architecture scalable, discoverable and maintainable?
event types: We have an own package in our monorepo where we defined all event types and ZOD schemas
consumers: We follow the EventBridge subscription pattern. Each consumer owns the rule. So we don't really document something here. Each consumer can decide which ones to use
producers: The main producer is our GQL API. We have abstracted event emitters for actions like post publish, update, etc.