Skip to content

feat: add single active consumer feature - #16

Merged
mm-zacharydavison merged 5 commits into
mainfrom
guillaume/feat/add-rabbitmq-single-active-consumer
Aug 7, 2026
Merged

mm-zacharydavison merged 5 commits into
mainfrom
guillaume/feat/add-rabbitmq-single-active-consumer

Conversation

@GuillaumeDecMeetsMore

Copy link
Copy Markdown
Collaborator

Changed

  • Add single active consumer feature - only relevant for RabbitMQ
    • This doesn't implement (yet) the possibility of re-queuing messages at the front, instead of the back. This will be done in a follow-up PR

@GuillaumeDecMeetsMore GuillaumeDecMeetsMore self-assigned this Jul 24, 2026
@GuillaumeDecMeetsMore
GuillaumeDecMeetsMore marked this pull request as ready for review July 24, 2026 03:03
Comment thread README.md Outdated
Comment on lines +612 to +615
This is exposed programmatically via `Transport.capabilities`:

- `ordering`: `'none'` (no guarantee — the default for `RabbitMQTransport` with more than one consumer), `'queue'` (strict FIFO — `LocalTransport`, or `RabbitMQTransport` when configured per [Single active consumer](#single-active-consumer) below), or `'partition'` (ordered within a partition/key, for future partition-aware transports).
- `concurrencyModel`: how the transport parallelizes work (`'prefetch'` for RabbitMQ, `'worker'`, `'partition'`, or `'none'`).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this actually configurable via Matador, or just for background information?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Transport.capabilities statically returns the capabilities of a given transport, it's not a configuration point.

That said, it doesn't seem like this PR adds anything to make this true?

Comment thread README.md Outdated
Comment on lines +612 to +615
This is exposed programmatically via `Transport.capabilities`:

- `ordering`: `'none'` (no guarantee — the default for `RabbitMQTransport` with more than one consumer), `'queue'` (strict FIFO — `LocalTransport`, or `RabbitMQTransport` when configured per [Single active consumer](#single-active-consumer) below), or `'partition'` (ordered within a partition/key, for future partition-aware transports).
- `concurrencyModel`: how the transport parallelizes work (`'prefetch'` for RabbitMQ, `'worker'`, `'partition'`, or `'none'`).

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Transport.capabilities statically returns the capabilities of a given transport, it's not a configuration point.

That said, it doesn't seem like this PR adds anything to make this true?

Comment thread README.md Outdated
zdavison and others added 3 commits August 6, 2026 12:45
…-only

Transport.capabilities is static per transport; queue options do not change
it. RabbitMQTransport reports ordering: 'none' regardless of
singleActiveConsumer, so drop the claim that it reports 'queue'.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@mm-zacharydavison
mm-zacharydavison merged commit 78c30dd into main Aug 7, 2026
4 checks passed
@GuillaumeDecMeetsMore
GuillaumeDecMeetsMore deleted the guillaume/feat/add-rabbitmq-single-active-consumer branch August 7, 2026 07:23
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.

4 participants