Skip to content

feat: boundaries#7

Merged
patrickleet merged 5 commits into
mainfrom
feat/outbox-refactor
Feb 4, 2026
Merged

feat: boundaries#7
patrickleet merged 5 commits into
mainfrom
feat/outbox-refactor

Conversation

@patrickleet
Copy link
Copy Markdown
Collaborator

No description provided.

@patrickleet patrickleet merged commit 6c171ec into main Feb 4, 2026
1 check passed
patrickleet added a commit that referenced this pull request May 29, 2026
Per the locked spec (Decision #6), KnativeBus implements only Bus and
NOT BusConsumer — Knative is a GitOps/HTTP transport with no in-process
consume loop:

- produce: send/publish POST a binary-mode CloudEvent to a broker-ingress
  URL ({ingress_base}/{namespace}/{broker}); publish targets the service's
  own {source}-events broker, send targets a downstream {commands_broker}.
  A message without an id is rejected (CloudEvents mandates `id`).
- consume = deploy-time artifacts: manifests(&plan, &subscriptions)
  renders role-based Broker + per-name Trigger YAML — own {source}-commands
  broker + command triggers if it handles commands, own {source}-events
  broker if publishes_events, and a Trigger per subscribed event on its
  producer's broker, with /cloudevent/<type> subscriber URIs. A .local(addr)
  builder switches subscribers to a kubefwd address.

Adds the per-type /cloudevent/{type} route to cloud_events_router
(Decision #7) and reqwest (optional, default-features off) under the http
feature for the POST.

Four tests: produce round-trips through a local cloud_events_router into
dispatch_message; missing id rejected; manifests render brokers/triggers;
pure-consumer (publishes_events=false) owns no broker and uses the local
subscriber URI.

Implements [[tasks/build-transport-bus-facade]]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
patrickleet added a commit that referenced this pull request May 30, 2026
Per the locked spec (Decision #6), KnativeBus implements only Bus and
NOT BusConsumer — Knative is a GitOps/HTTP transport with no in-process
consume loop:

- produce: send/publish POST a binary-mode CloudEvent to a broker-ingress
  URL ({ingress_base}/{namespace}/{broker}); publish targets the service's
  own {source}-events broker, send targets a downstream {commands_broker}.
  A message without an id is rejected (CloudEvents mandates `id`).
- consume = deploy-time artifacts: manifests(&plan, &subscriptions)
  renders role-based Broker + per-name Trigger YAML — own {source}-commands
  broker + command triggers if it handles commands, own {source}-events
  broker if publishes_events, and a Trigger per subscribed event on its
  producer's broker, with /cloudevent/<type> subscriber URIs. A .local(addr)
  builder switches subscribers to a kubefwd address.

Adds the per-type /cloudevent/{type} route to cloud_events_router
(Decision #7) and reqwest (optional, default-features off) under the http
feature for the POST.

Four tests: produce round-trips through a local cloud_events_router into
dispatch_message; missing id rejected; manifests render brokers/triggers;
pure-consumer (publishes_events=false) owns no broker and uses the local
subscriber URI.

Implements [[tasks/build-transport-bus-facade]]

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

1 participant