Skip to content

Module core Roadmap

github-actions[bot] edited this page Sep 28, 2026 · 26 revisions

Navigation: Home > Modules

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 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)

ThemisDB 1.9.0-beta Β· Home Β· Module-Index Β· GitHub Β· Issues

ThemisDB Wiki

🏠 Overview

πŸ“š Compendium

πŸš€ Getting Started

πŸ“– Tutorials

πŸ“— User Guide

βš™οΈ Operations & Security

πŸ“Ÿ Ops Runbooks

πŸ—οΈ Architecture

πŸ“ ADRs

πŸ”§ Contributing

πŸ“‹ Governance

πŸ” Audit

🧩 Plugins

πŸ”Œ Adapters

πŸ’‘ Examples

πŸ“¦ Client SDKs

πŸŽ“ Training

πŸ› οΈ Tools

πŸ€– Developer LLM Wiki

Clone this wiki locally