Skip to content

Module core Roadmap

github-actions[bot] edited this page Aug 31, 2026 · 1 revision

Roadmap-Hinweis: Vage Bullets ohne Akzeptanzkriterien in Checkbox-Tasks überführen. Format: - [ ] <Task> (Target: <Q/Jahr>).

Core Module Roadmap

Current Status

Core runtime foundations are delivered: ConcernsContext, observability/caching/security concern interfaces, runtime concern replacement APIs, production adapters (spdlog, OpenTelemetry-family tracers, Prometheus, Redis cache path), plugin-based adapter loading via dlopen/LoadLibrary (Issue #1706), and cryptographic adapter signing via SignedAdapterValidator.

In Progress

  • [~] Development-status evidence refresh and roadmap/future alignment for Issue #5638 (Target: 2026-Q3)

Planned Features

  • Plugin-based adapter loading (no recompile needed) (Issue: #1706 — Implemented: 2026-07-28)
  • Adapter plugin hardening and signing workflow (Implemented: 2026-07-28)

Implementation Phases

Phase 1: Design / API Contract

  • Stabilize current concern interfaces (ILogger, ITracer, IMetrics, ICache, ISecrets, IFeatureFlags, IAuditLog) as the active baseline
  • Define AdapterMetadata / AdapterValidator / AdapterSignature structs (include/core/concerns/adapter_metadata.h) (Implemented: 2026-07-28)
  • Define AdapterRegistry class with registerAdapter, resolve<T>, hotSwap, count, hasAdapter (include/core/concerns/adapter_registry.h) (Implemented: 2026-07-28)
  • Define signed plugin adapter contract and validation envelope — AdapterSignature, SignedAdapterValidator, canonicalString(), sha256Hex() (Implemented: 2026-07-28)

Phase 2: Core Implementation

  • Deliver ConcernsContext creation and runtime replacement surfaces
  • Add ConcernsContext::resolve<T>() generic type-safe adapter resolution bridging built-in concern types and AdapterRegistry (Implemented: 2026-07-28)
  • Implement AdapterRegistry non-template methods (count, hasAdapter, loadFromPlugin) in src/core/concerns/adapter_registry.cpp (Implemented: 2026-07-28)
  • Add runtime plugin loading path that avoids core-module recompilation — loadFromPlugin() via dlopen/LoadLibraryA, plugin_api.h ABI contract, THEMIS_DEFINE_PLUGIN_INIT macro (Implemented: 2026-07-28)

Phase 3: Error Handling and Edge Cases

  • Fail-fast null replacement protection in runtime replace* APIs
  • registerAdapter rejects empty id, null adapter pointers, and apiVersion < kCurrentApiVersion with std::invalid_argument (Implemented: 2026-07-28)
  • hotSwap drain timeout emits structured warning to std::cerr (Implemented: 2026-07-28)
  • ICircuitBreaker::call(fn, fallback) inline template — guards fn with allowRequest(), records success/failure (Implemented: 2026-07-28)
  • Harden plugin load/unload failure semantics (signature mismatch, ABI mismatch, bootstrap errors) — AdapterTrustPolicy::kRequireSignature, .sig file check, non-zero init return handling (Implemented: 2026-07-28)

Phase 4: Tests

  • Focused module test registration in tests/core/CMakeLists.txt (module_core_<test_stem>_focused)
  • tests/core/test_adapter_registry_focused.cpp — 10 tests (AR_01..AR_10) (Implemented: 2026-07-28)
  • tests/core/test_circuit_breaker_focused.cpp — 8 tests (CB_01..CB_08) (Implemented: 2026-07-28)
  • tests/core/test_concerns_context_focused.cpp — 18 tests (CCT_01..CCT_18) (Implemented: 2026-07-28)
  • [~] Refresh focused build/test execution evidence for current cycle (Target: 2026-Q3)

Phase 5: Performance and Hardening

  • AdapterRegistry::kHotSwapTimeoutMs{100} SLO constant defined; drain loop uses 1 ms sleep × 100 iterations (Implemented: 2026-07-28)
  • kCurrentApiVersion = 1 constant in adapter_metadata.h; registration enforces apiVersion >= kCurrentApiVersion (Implemented: 2026-07-28)
  • AdapterSignature production struct defined in adapter_metadata.h and enforced by SignedAdapterValidator in signing flows (Implemented: 2026-07-28)
  • Add adapter signing and trust policy validation to release hardening flow — SignedAdapterValidator, AdapterTrustPolicy, loadFromPlugin SHA-256 file verification (Implemented: 2026-07-28)

Phase 6: Documentation and Acceptance

  • Keep roadmap/future/architecture synchronization explicit and source-traceable
  • Update src/core/ROADMAP.md with Phase 1–5 checkboxes for implemented items (2026-07-28)
  • Update src/core/MODULE_EVIDENCE.md with Implementation Coverage section (2026-07-28)
  • [~] Keep module evidence and issue closure checklist current for the active status issue (Target: 2026-Q3)

Production Readiness Checklist

  • Core concerns architecture documented and source-verifiable (README.md, ARCHITECTURE.md)
  • Runtime replacement APIs and production-mode constraints documented (ARCHITECTURE.md, SECURITY.md)
  • Focused core tests are configured (tests/core/CMakeLists.txt)
  • Three focused test suites added: test_concerns_context_focused, test_adapter_registry_focused, test_circuit_breaker_focused (2026-07-28)
  • [~] Fresh executable-level focused build/test evidence refreshed for this cycle (see MODULE_EVIDENCE.md)
  • Plugin runtime loading and signing hardening completed — Issue #1706 resolved + Q4 2026 hardening delivered (2026-07-28)

Known Issues & Limitations

  • Context propagation across async/thread boundaries still requires caller-managed header propagation (startSpanFromHeaders / injectContext)

Breaking Changes

  • No breaking core-module contract planned in this cycle
  • Future plugin-signing enforcement may require adapter packaging/signature metadata for external adapters (migration notes required before rollout)

Program Execution Model — Wave Context

This module is a contributing module in the program-level Wave A → B → C → D execution model. It does not own a primary wave deliverable but must remain release_critical-green throughout all waves and must deliver Wave D operability improvements in Q1 2027. See [[../../ROADMAP.md|ROADMAP]] for the full wave model and exit criteria.

Wave D Contribution for core

  • Deliver or validate distributed tracing, high-cardinality stress coverage, exporter reliability, and operator remediation hints as applicable to this module (Target: Q1 2027)
  • Contribute to or validate long-duration soak test coverage for this module's primary paths (Target: Q1 2027)
  • Ensure runbook coverage for operator-critical scenarios in this module (Target: Q1 2027)

Cross-Wave Requirements

  • release_critical CI must remain green on develop throughout all waves (Target: ongoing)
  • p95/p99 benchmarks must be refreshed on representative hardware before Wave D sign-off (Target: Q1 2027)
  • No behavioral regression may be introduced into modules in Wave A/B/C scope from changes in this module.

Program-Level Success Criteria (contribution)

  • This module's distributed/acceleration paths fail closed (Target: Q1 2027)
  • Benchmark-backed p95/p99 baselines exist on representative hardware (Target: Q1 2027)
  • Operator-critical paths have diagnostics, alerts, and runbooks (Target: Q1 2027)

Navigation

Home

Architecture

Governance

Modules

Developer

Clone this wiki locally