| @@ -1,3 +1,30 @@ | |||||
| # 2026-02-04 | |||||
| ## Whoami-based sync worker routing for improved sticky sessions for Synapse | |||||
| Deployments using [Synapse workers](./docs/configuring-playbook-synapse.md#load-balancing-with-workers) now benefit from improved sync worker routing via a new whoami-based mechanism (making use of the [whoami Matrix Client-Server API](https://spec.matrix.org/v1.17/client-server-api/#get_matrixclientv3accountwhoami)). | |||||
| Previously, sticky routing for sync workers relied on parsing usernames from access tokens, which only worked with native Synapse tokens (`syt_<base64 username>_...`). This approach failed for [Matrix Authentication Service](docs/configuring-playbook-matrix-authentication-service.md) (MAS) deployments, where tokens are opaque and don't contain username information. This resulted in device-level stickiness (same token → same worker) rather than user-level stickiness (same user → same worker regardless of device), leading to suboptimal cache utilization on sync workers. | |||||
| The new implementation calls Synapse's `/whoami` endpoint to resolve access tokens to usernames, enabling proper user-level sticky routing regardless of the authentication system in use (native Synapse auth, MAS, etc.). Results are cached to minimize overhead. | |||||
| This change: | |||||
| - **Automatically enables** when sync workers are configured (no action required) | |||||
| - **Works universally** with any authentication system | |||||
| - **Replaces the old implementation** entirely to keep the codebase simple | |||||
| - **Adds minimal overhead** (one cached internal subrequest per sync request) for non-MAS deployments | |||||
| For debugging, you can enable verbose logging and/or response headers showing routing decisions: | |||||
| ```yaml | |||||
| # Logs cache hits/misses and routing decisions to the container's stderr | |||||
| matrix_synapse_reverse_proxy_companion_whoami_sync_worker_router_logging_enabled: true | |||||
| # Adds X-Sync-Worker-Router-User-Identifier and X-Sync-Worker-Router-Upstream headers to sync responses | |||||
| matrix_synapse_reverse_proxy_companion_whoami_sync_worker_router_debug_headers_enabled: true | |||||
| ``` | |||||
| # 2025-12-09 | # 2025-12-09 | ||||
| ## Traefik Cert Dumper upgrade | ## Traefik Cert Dumper upgrade | ||||