MOC — Stateless Container (jDisc)
Every Vespa request first enters a stateless container cluster called jDisc: a jDisc core layer
(protocol-independent request/response over a model of the running application), a jDisc
container layer (component management, config, OSGi), a search middleware layer (query/result
APIs and execution), and document-operation APIs. Entirely Java. (Description from
vespa/Code-map.md; sizes from first-hand find/wc inspection of the workspace.)
Modules
vespa/jdisc_core— core jDisc functionality (223 src files, ~28k LOC).vespa/container-disc— container core: metrics, OSGi component bundles, dependency
injection, HTTP connector, glue to jDisc core (583 files, ~58k LOC).vespa/component— the component model that Java components subclass (24 files, ~2k LOC).vespa/container-search— Searcher framework over the generic processing chain, query
profiles, global query execution: dispatch (scatter-gather), grouping (1202 files, ~171k LOC —
largest container module).vespa/document— document model: documents, fields, document types, operations (Java+C++).vespa/messagebus— generic async multi-hop message passing (Java+C++).vespa/container-messagebus— MessageBus connector for jDisc.vespa/documentapi— API for document operations over message bus.vespa/docproc/vespa/docprocs— chainable document processors and bundled components
(incl. the Indexingprocessor).vespa/indexinglanguage— the “indexing:” statement language for search definitions.vespa/vespaclient-container-plugin— implements document/v1 + internal API over jDisc.vespa/vespa-feed-client— fast write client against that internal API.
Related but unmapped in Code-map (observed in vespa/): container-dev, container-test,
container-documentapi, container-search-and-docproc, container-llama,
container-onnxruntime, container-opentelemetry.
Anchor files
vespa/jdisc_core/— start at the request-dispatch and application-model packages (exact
entry class pending human verification).vespa/container-disc/— component/OSGi wiring and HTTP connector.vespa/container-search/src/— Searchers, query profiles, dispatch/grouping execution.vespa/document/src/— document model types.vespa/messagebus/src/— routing and multi-hop message passing.
Open questions
- Pin down 3-5 concrete file-level “read first” paths (e.g. which class in container-search
implements the Query API entry?). - Where do
container-dev/container-search-and-docprocfit — build aggregations or code? - Do the C++ halves of
documentandmessagebusbelong here or in content-nodes?