Lex Browse everything
For developers

Limits and scale

Known constraints, scaling triggers and deliberately deferred work.

Scale decisions are tied to observable triggers. The system stays simple while the current bottleneck is bounded, and each next move names the capability it buys and the complexity it adds.

Current single-process Lex scales through measured triggers: narrow lock scope first, externalize ledgers before replicas, then move artifacts to local disk only when memory requires it.

Open the scale diagram at full size

Box Responsibility Owner
One process Keep local indexes, thread state and admission ledgers authoritative Lex.Web with in-process Lex.Mcp and Lex.Ask
Narrow gates Relieve measured encoder or vector contention before adding services MCP and assistant admission controllers
Externalize state Make quotas, idempotency and thread continuity replica-safe deferred shared-state boundary
Replicas or local disk Add request capacity only after state is shared; move artifacts only after memory pressure future runtime and deployment decision

Current boundaries

Boundary Current design Consequence
Runtime One always-on Container Apps replica with local immutable indexes Fast in-process calls; process-local quotas and thread memory are authoritative
Assistant Four concurrent turns, 200 accepted turns per client address and 400 globally per day Predictable public cost; NAT and rotating addresses are not identities
MCP Eight executing, sixteen queued and a two-second queue deadline Overload becomes a typed refusal rather than unbounded latency
Agent Eight frozen operations, 64 evidence items and 96,000 evidence characters A large research request must be decomposed by the reader
Retrieval Keyword default; hybrid available only behind signed evidence gates Conceptual recall improvements do not outrank measured precision
Release One current revision, one exact rollback, one transient candidate No unlimited artifact or revision accumulation

Fresh v4 relevance, latency, memory, coverage and cold-start measurements are pending the exact candidate promotion. Older figures are historical observations and are not presented as current.

Triggered next moves

Observable trigger Next move Cost introduced
MCP queue-deadline refusals Narrow the gate to encoder and vector work before adding infrastructure More concurrency paths to test
Global daily cap or Azure OpenAI 429s on three sustained days Raise model quota and public budget together; consider provisioned throughput only after utilization proves it Higher fixed or variable model cost
Sustained served p95 above the release threshold Externalize quota, idempotency and thread state, then add replicas A shared state dependency and distributed coordination
Working set approaches the container memory gate Move signed artifacts to verified VM-local disk under D55 A second deployment path and OS operations
Third publisher admitted Make the required-publisher set one source and remeasure fan-out More vocabulary and latency variance

Known limitations that matter to a reader

The detailed and dated backlog lives in known defects on GitHub. Deliberately absent: generated consolidation, model-derived legal identity, silent taxonomy merging, unbounded replanning and a framework rewrite.

Delivery registry

The target path is reviewed EU scope, official dated expressions, content-addressed text states, FTS5 keyword candidates plus local compact semantic candidates, temporal and hierarchy eligibility, fixed rank fusion, and the same typed result contracts. A capability is not described as live until its registry status and release evidence agree.

milestoneoutcomestatus
M1Truthful architecture narrative
Separate live architecture, target architecture, decisions and measured benchmarks.
shipped
M2Verified artifact publication
A pinned trust root verifies a signed manifest for every served artifact.
shipped
M3Expandable temporal EU corpus
Engineering configuration selects the acquisition set while every accepted work retains all official dated expressions; scope labels never become legal metadata or search facets.
shipped
M4Deduplicated index
lex-index/3 stores repeated wording once without changing timelines, exact text or diffs.
shipped
M5Local hybrid retrieval
Keyword and local semantic retrieval fuse deterministically only after the public quality gate passes.
gated
M6Lawyer-facing scope filters
Jurisdiction, hierarchy, legal form, binding status, language and date remain explicit; official publisher classifications appear as typed discovery metadata.
shipped
M7Luxembourg original-act expansion
Add reviewed normative acts outside the Legilux consolidation catalogue with document-class-specific temporal semantics.
planned
M8Size-gated local index hosting
Small verified indexes run locally in Container Apps. Oversized releases remain deployment-blocked until the zero-traffic VM-managed local-disk path is implemented and measured.
building
M9Official-metadata search and legal-research agent
Official publisher metadata, source-backed short-title resolution, deterministic clarification, frozen plan execution, Agent Framework evidence composition and judging, bounded memory and jurisdiction-first results ship in the v4 release line. Mounted index identities and signed release evidence, not this registry, establish what a running revision serves. Taxonomies remain weak discovery only and model-derived discovery remains excluded from production retrieval.
shipped

Program hybrid-eu/1, updated 2026-08-14, review status engineer-reviewed.