Skip to content

feat(asyncapi): derive message ownership from operation action#411

Open
freaz wants to merge 1 commit into
event-catalog:mainfrom
freaz:main
Open

feat(asyncapi): derive message ownership from operation action#411
freaz wants to merge 1 commit into
event-catalog:mainfrom
freaz:main

Conversation

@freaz

@freaz freaz commented Jun 11, 2026

Copy link
Copy Markdown

Motivation

EventCatalog models a message as a single shared contract, but the AsyncAPI generator treated every service as the owner of every message it referenced, so whichever service was generated last would overwrite the message's catalog entry — letting a subscriber clobber the publisher's summary, schema, and badges. AsyncAPI already expresses producer/consumer intent through the operation action (send vs receive), so we now use that signal to decide ownership: senders own and may overwrite the contract, while receivers only reference it. This keeps the published contract authoritative and stable regardless of generation order, without breaking existing setups — explicit x-eventcatalog-role still wins and single-service catalogs are unaffected.

Without an explicit x-eventcatalog-role, a send/publish operation owns the
message while a receive/subscribe operation only references it - documented if
missing, but never overwriting an entry owned by another service. Explicit
roles (provider/client) and single-service catalogs are unaffected.
@freaz freaz requested a review from boyney123 as a code owner June 11, 2026 11:41
@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@changeset-bot

changeset-bot Bot commented Jun 11, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 473d16c

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@eventcatalog/generator-asyncapi Minor
@eventcatalog/generator-apicurio Major

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants