V6.17.0
Why is this such a big release? Because @jeremydmiller went on a 3 night vacation and the community decided to throw in issues and pull requests left and right!
A big theme was filling in the remaining gaps of "Name Broker" and "Broker per Tenant" support in every external messaging transport where it made sense to add that rather than just being Rabbit MQ, Azure Service Bus, and hit and miss everywhere else. We also added HTTP QUERY support.
What's Changed
- Configure ServiceBusProcessorOptions for Azure Service Bus listeners (supersedes #3286) by @jeremydmiller in #3293
- Don't override pipeline Error status in InlineReceiver (GH-3288) by @jeremydmiller in #3292
- feat: implement native RavenDB-backed control queue for Wolverine by @danielwinkler in #3285
- RavenDb control transport: TransportCompliance + leadership compliance, make ravendb:// first-class by @jeremydmiller in #3294
- Explicit transactional DbContext selection for multi-DbContext handlers (supersedes #3284) by @jeremydmiller in #3295
- Support the HTTP QUERY verb (RFC 10008) in Wolverine.HTTP by @jeremydmiller in #3296
- NATS transport: dynamic subjects, JetStream dedup, per-tenant connection by @thedonmon in #3283
- Allow special characters in Wolverine.HTTP route templates (fixes #3282) by @jeremydmiller in #3297
- docs(batching): settlement model + durability requirement (GH-3289 Phase 0) by @jeremydmiller in #3299
- feat(batching): CoalesceBy de-duplication + IBatchContext (GH-3289 Phase 1) by @jeremydmiller in #3300
- feat(batching): warn/assert on a direct handler shadowing a batch handler (GH-3289 Phase 2) by @jeremydmiller in #3301
- feat(batching): ApplyItemException to isolate poison items from a batch (GH-3289 Phase 3a) by @jeremydmiller in #3302
- fix(efcore): enlist HTTP endpoint outbox in Lightweight mode so cascades flush after commit (GH-3291) by @jeremydmiller in #3298
- feat(batching): IsolateBatchMembers error policy for opaque batch failures (GH-3289 Phase 3b) by @jeremydmiller in #3311
- feat(batching): ProbeIndividuallyAfter(N) count-based batch member isolation (GH-3289 Phase 3c) by @jeremydmiller in #3312
- feat(batching): ApplyItemException poisons every member of a coalesced key (GH-3289 Phase 3d) by @jeremydmiller in #3313
- feat(kafka): broker-per-tenant multi-tenancy (dedicated cluster per tenant) by @jeremydmiller in #3315
- feat(sqs): broker-per-tenant multi-tenancy for AWS SQS (#3304) by @jeremydmiller in #3316
- feat(pubsub): named-broker and broker-per-tenant support (GH-3306) by @jeremydmiller in #3318
- feat(pulsar): named-broker and broker-per-tenant support (GH-3308) by @jeremydmiller in #3320
- feat(mqtt): named-broker and broker-per-tenant support (GH-3307) by @jeremydmiller in #3319
- feat(redis): named-broker and broker-per-tenant support (GH-3309) by @jeremydmiller in #3321
- feat(nats): add named-broker support (GH-3310) by @jeremydmiller in #3314
- feat(sns): named-broker and broker-per-tenant support (GH-3305) by @jeremydmiller in #3317
- fix(local): buffered local queues no longer drop cascaded messages (GH-3287) by @jeremydmiller in #3322
- perf(dlq): index wolverine_dead_letters for replay/cleanup scans (GH-3279) by @jeremydmiller in #3323
- Add WolverineFx.Http.AspVersioning — Asp.Versioning.Http integration by @knotekbr in #3324
- fix: CircuitWatcher.Dispose() does not stop the ping-until-reconnected loop by @lahma in #3326
- Per-tenant agent fan-out + automatic database-affine assignment by store cardinality (supersedes #3281) by @jeremydmiller in #3328
- fix(tests): deterministically gate the DoHealthChecksAsync reentrancy-guard test by @jeremydmiller in #3331
- Record DaemonMode.ExternallyManaged for Marten + Polecat under Wolverine-managed distribution (closes #3290) by @jeremydmiller in #3330
- WS1 per-tenant distribution e2e completion: Marten 9.13.0-alpha.3, churn/failover e2e, #4862 regression pin (#486) by @jeremydmiller in #3334
- Bump JasperFx to 2.21.1 (per-tenant HWM poll cadence, #492/#493) by @jeremydmiller in #3335
- Bump JasperFx to 2.22.0 — daemon connection governors (#494–#496) by @jeremydmiller in #3336
- Bump JasperFx + JasperFx.Events to 2.23.0 (rebuild cap, #420/#463) by @jeremydmiller in #3338
- Bump JasperFx + JasperFx.Events to 2.24.0 (cross-product rebuild cap, #498) by @jeremydmiller in #3339
- docs: link the community Salesforce Pub/Sub transport by @meyc-v1 in #3337
- fix: per-topic Kafka builder methods drop SASL_SSL credentials from ConsumerConfig/ProducerConfig by @lahma in #3344
- fix(shared-memory): copy envelopes at transport handoff by @Steve-XYZ in #3333
- Bump critter-stack deps (JasperFx 2.24.1, Marten 9.14.0, Weasel 9.16.2, Polecat [4.8.0,6.0.0)) by @jeremydmiller in https://github.com//pull/3348
- Public API to enumerate node-owned databases under managed event subscription distribution (#3340) by @jeremydmiller in #3345
- Fix event-subscription agents left unassigned after node scale-down (#3341) by @jeremydmiller in #3346
- Fix [Entity]/storage-action regression for non-EFCore-persisted sagas (#3342) by @jeremydmiller in #3347
- fix(outbox): discard clears incoming envelope after rolled-back outbox by @robertdusek in #3327
New Contributors
- @knotekbr made their first contribution in #3324
- @meyc-v1 made their first contribution in #3337
- @Steve-XYZ made their first contribution in #3333
- @robertdusek made their first contribution in #3327
Full Changelog: V6.16.0...V6.17.0