refactor: migrate eventsourced to codeberg and go-messaging-amqp #949

Merged
argoyle merged 1 commits from chore/codeberg-eventsourced into main 2026-09-16 16:52:16 +00:00
Owner

Migrates eventsourced from gitlab.com/unboundsoftware to codeberg.org/eventsourced (eventsourced v1.24.0, amqp v1.10.1, pg/v2 v2.1.1). No sloth in this service.

The Codeberg amqp publisher is built on go-messaging-amqp, so the service moves off sparetimecoders/goamqp too, following the shiny porting guide (docs/design/codeberg-migration.md):

  • Routing keys mapped on the eventsourced publisher (newEventPublisher)
  • Cache consumers are typed handlers (cacheUpdater[T]); Cache.Update(msg any) error
  • uncancelledPublisher: a stored event is published even if the client left
  • closeEvents buffered; receiver selects on it and rootCtx.Done()
  • WithPrefetchLimit dropped (no-op; 20 is the default), UseLogger → WithLogger
  • amqp091-go v1.15.0 (GO-2026-6372)
  • Renovate groups codeberg.org/messaging/** with eventsourced

Tests: topology assertion against a literal key list (all consumers transient, publishes on events.topic.exchange), published routing keys, and publish surviving a cancelled context — each verified to fail when the code is broken.

Deploy: the service only has transient (auto-delete) consumer queues and publishes to the existing exchange, so no queue cutover is needed. CloudEvents headers are additive and header-less messages from old pods are consumed, so a rolling deploy is safe.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Dpb7Y47dPz246oY9bCzh7k

Migrates `eventsourced` from `gitlab.com/unboundsoftware` to `codeberg.org/eventsourced` (eventsourced v1.24.0, amqp v1.10.1, pg/v2 v2.1.1). No sloth in this service. The Codeberg `amqp` publisher is built on `go-messaging-amqp`, so the service moves off `sparetimecoders/goamqp` too, following the shiny porting guide (`docs/design/codeberg-migration.md`): - Routing keys mapped on the eventsourced publisher (`newEventPublisher`) - Cache consumers are typed handlers (`cacheUpdater[T]`); `Cache.Update(msg any) error` - `uncancelledPublisher`: a stored event is published even if the client left - `closeEvents` buffered; receiver selects on it and `rootCtx.Done()` - `WithPrefetchLimit` dropped (no-op; 20 is the default), `UseLogger` → `WithLogger` - `amqp091-go` v1.15.0 (GO-2026-6372) - Renovate groups `codeberg.org/messaging/**` with eventsourced Tests: topology assertion against a literal key list (all consumers transient, publishes on `events.topic.exchange`), published routing keys, and publish surviving a cancelled context — each verified to fail when the code is broken. **Deploy:** the service only has transient (auto-delete) consumer queues and publishes to the existing exchange, so no queue cutover is needed. CloudEvents headers are additive and header-less messages from old pods are consumed, so a rolling deploy is safe. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Dpb7Y47dPz246oY9bCzh7k
argoyle added 1 commit 2026-09-16 15:24:14 +00:00
refactor: migrate eventsourced to codeberg and go-messaging-amqp
schemas / check (push) Skipped
schemas / vulnerabilities (push) Skipped
schemas / check-release (push) Skipped
schemas / build (push) Skipped
pre-commit / pre-commit (push) Skipped
schemas / vulnerabilities (pull_request) Successful in 58s
schemas / check-release (pull_request) Successful in 59s
schemas / check (pull_request) Successful in 1m58s
pre-commit / pre-commit (pull_request) Successful in 2m54s
schemas / build (pull_request) Successful in 6m9s
schemas / deploy-prod (pull_request) Skipped
57682f2dc3
Move eventsourced modules from gitlab.com/unboundsoftware to codeberg.org/eventsourced.
The Codeberg amqp publisher is built on go-messaging-amqp, so the service
switches from sparetimecoders/goamqp as well:

- routing keys are mapped on the eventsourced publisher (newEventPublisher)
- cache consumers are typed handlers; Cache.Update drops the goamqp shape
- publishes detach from the request context (uncancelledPublisher)
- closeEvents is buffered and the receiver also watches rootCtx
- WithPrefetchLimit dropped (no-op, 20 is the default)
- amqp091-go v1.15.0 (GO-2026-6372)
- renovate groups codeberg.org/messaging with eventsourced

Only transient consumer queues are used, so no queue cutover is needed.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dpb7Y47dPz246oY9bCzh7k
argoyle merged commit 84b18860b5 into main 2026-09-16 16:52:16 +00:00
argoyle deleted branch chore/codeberg-eventsourced 2026-09-16 16:52:17 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: unboundsoftware/schemas#949