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.
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
- Some official states contain no safely extractable wording; they remain explicit gaps.
- Provision extraction quality has a historical empty-text backlog. The additive Memorial v2 profile is shipped in code, while the refreshed corpus measurement waits for the v4 ingestion.
- EU citation edges and amendment relations are not yet a complete query surface.
- MCP comparison identifies changed states but does not yet return every provision-level text diff.
- Production diagnostics are sanitized but not all are correlated end to end by request id.
- Shared ACR cleanup remains inventory-only until registry ownership is isolated or audited.
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.
| milestone | outcome | status |
|---|---|---|
| M1 | Truthful architecture narrative Separate live architecture, target architecture, decisions and measured benchmarks. | shipped |
| M2 | Verified artifact publication A pinned trust root verifies a signed manifest for every served artifact. | shipped |
| M3 | Expandable 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 |
| M4 | Deduplicated index lex-index/3 stores repeated wording once without changing timelines, exact text or diffs. | shipped |
| M5 | Local hybrid retrieval Keyword and local semantic retrieval fuse deterministically only after the public quality gate passes. | gated |
| M6 | Lawyer-facing scope filters Jurisdiction, hierarchy, legal form, binding status, language and date remain explicit; official publisher classifications appear as typed discovery metadata. | shipped |
| M7 | Luxembourg original-act expansion Add reviewed normative acts outside the Legilux consolidation catalogue with document-class-specific temporal semantics. | planned |
| M8 | Size-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 |
| M9 | Official-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.