Skip to content

Conversation

@ffranr
Copy link
Contributor

@ffranr ffranr commented Oct 28, 2025

This PR improves the robustness of the authmailbox system by introducing support for fallback service URLs and enhancing subscription handling.

The primary goal is to enable redundancy in subscription connections, allowing clients to connect to multiple authmailbox servers in parallel. This reduces the risk of failures caused by a single unresponsive server, addressing reliability issues such as issue #1850.

Core improvements include:

  • Support for server-defined fallback authmailbox URLs.
  • Refactored subscription logic to allow non-blocking, multi-endpoint connections.
  • Preparatory work for scalable and extensible subscription configuration.

TODO:

  • tests
  • sender side use of fallback servers

Add basic unit test coverage for parser function ParseCourierAddress.
Extract fallback authmailbox URLs from the server configuration and
pass them to the custodian component. This enables the custodian to
handle fallback scenarios using server-provided values.
Introduce MultiSubscriptionConfig to prepare for future extensions with
additional config fields.
Add support for passing fallback authmailbox service URLs into
MultiSubscriptionConfig. This prepares the config structure to handle
server-defined fallback behavior across multiple subscriptions.
Extract mutex-based client management into a new clientRegistry struct
to ensure thread-safe access and modifications to the client
subscriptions.
@ffranr ffranr self-assigned this Oct 28, 2025
Update MultiSubscription.Subscribe to also initiate subscriptions to
fallback servers. These connections are established synchronously in a
fire-and-forget non-blocking background routine.
@ffranr ffranr force-pushed the wip/fallback-authmailbox-urls branch from a90114e to 571a891 Compare October 29, 2025 01:15
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