Console terminology: In the Maverics Console, Orchestrator instances and
configuration delivery are managed through Deployments. When working directly
with YAML, configuration is managed as files delivered via the
-config flag or
MAVERICS_CONFIG environment variable.Overview
Session data is stored in-memory and bounded by a configurable capacity limit. When the limit is reached, the oldest sessions are evicted using LRU (Least Recently Used) eviction. Session data is lost on restart and cannot be shared across multiple Orchestrator instances. For session lifetime, cookie, and general configuration options, see the Sessions overview.Multi-Node Deployments
When a deployment includes more than one Orchestrator instance, the local session store requires sticky sessions (session affinity) on your load balancer. Because sessions are stored in each node’s local memory, a user’s requests must consistently reach the same Orchestrator instance that holds their session. Use cookie-based affinity targeting the session cookie (maverics_session by default). Cookie-based affinity is more reliable than IP-based affinity because it works correctly when multiple users share the same IP address (e.g., behind a corporate NAT) or when a user’s IP changes mid-session (e.g., switching networks on a mobile device). If you have customized the cookie name, configure your load balancer to use that custom name instead.
If an Orchestrator node goes down, sessions on that node are lost. However, end users typically experience seamless continuity — the Orchestrator redirects the user to the upstream IdP, which recognizes the user’s existing IdP session and completes authentication silently without prompting for credentials. The Orchestrator then creates a new session transparently.
Configuration
The local store is the default — no store configuration is required for single-node deployments. For multi-node deployments, the only local-specific setting is the session capacity:Configuration Reference
Local Store Fields
| Key | Type | Default | Required | Description |
|---|---|---|---|---|
session.store.type | string | "local" | No | Must be "local" for local session storage |
session.store.local.capacity | integer | 50000 | No | Maximum sessions stored in memory (LRU eviction when exceeded) |
Session lifetime, cookie, and dynamic expiration settings apply to all session stores and are documented on the Sessions overview page.
Troubleshooting
- Sessions lost on restart — the local session store does not persist sessions across Orchestrator restarts or node failures. This is expected behavior. In practice, session loss is typically transparent to end users: the Orchestrator redirects the user to the upstream IdP, which recognizes the user’s existing IdP session and completes authentication silently (no login prompt). The Orchestrator then creates a new session. The user experiences a brief redirect but is not asked to log in again.
- Sessions evicted unexpectedly — if the capacity limit is reached, the oldest sessions are evicted via LRU. Increase the capacity or shorten session lifetimes.
- Sessions not shared across nodes — the local store is node-local. For multi-node deployments, configure sticky sessions (session affinity) on your load balancer using cookie-based affinity on the session cookie. See Multi-Node Deployments above.
- Cookie domain issues — if sessions are lost when navigating between subdomains, set the cookie domain to the parent domain (e.g.,
.example.com).