Skip to main content

Services

ServicePortRuntimePurposeKey specs
apps/web6200Next.js 15 · React 19 · Node 20UI, patient + provider + admin consoles, decision-graph UISpec 014, 015, 017, 018, 056, 058
apps/api6201NestJS 10 · TypeScript strict · Node 20Core business logic, envelope encryption, RBAC + consent, auditSpec 001, 002, 004-015, 018, 019, 020, 021
apps/ml6202FastAPI · Python 3.12 · Pydantic v2ASR, NER, CDS, Coding AI with dual-LLMSpec 001 (FR-006), 041
memory-store6401FastAPI · motor · Python 3.12Knowledge graph + hybrid retrieval + MCP serverSpecs 026, 028, 042-047, 060
research-engine6402FastAPI · motor · Python 3.125 agents + 12 trusted-source connectors + change-stream pipelineSpecs 032, 048, 049, 050, 051, 055, 061
orchestrator6403FastAPI · motor · Python 3.126-phase hypothesis candidate lifecycleSpecs 027, 034, 037, 040, 052, 053, 059
model-optimization6404FastAPI · motor · Python 3.12Decision graph + eval + outcome feedback + benchmarkSpecs 030, 033, 035, 038, 057, 062
apps/landingstaticPlain HTML + Tailwind CDNPublic marketing page (deployed to Azure SWA)
apps/docsstaticDocusaurusThis site (deployed to Azure SWA)

Inter-service comms

All comms are HTTP + service-account JWT (FR-KIA-012). No shared DB connections, no cross-service Python imports.

Database footprint

ServiceCollections accessed
apps/apiusers, patients, encounters, notes, care_teams, referrals, consents, audit_events, organizations, family_groups, notifications, ehr_imports, refresh_sessions
apps/mlllm_call_logs (writes encrypted prompt/output; posts audit to api via service JWT)
memory-storememory_entities, memory_relationships, memory_claims, research_sources, retrieval_audit
research-engineresearch_tasks, correlator_findings, replicator_findings, librarian_findings (+ reads memory-store via HTTP)
orchestratororchestration_candidates, orchestration_runs, candidate_outcomes (writes only; reads memory-store via HTTP)
model-optimizationexperiment_traces, decision_graph_nodes, dpo_preference_pairs (reads llm_call_logs.metadata + retrieval_audit)

Every PHI-bearing write goes through FieldEncryptionService (FR-005).

Health checks + observability

ServiceHealth endpointAudit source
apps/apiGET /api/healthapi
apps/mlGET /api/ml/healthml
memory-storeGET /api/memory/healthmemory-store
research-engineGET /api/research/healthresearch-engine
orchestratorGET /api/orchestrator/healthorchestrator
model-optimizationGET /api/optimization/healthmodel-optimization

Every service exports:

  • Azure Monitor traces (distributed via W3C trace-context)
  • OpenTelemetry counters on per-route latency + status
  • Audit events (every security-relevant action)