Skip to content

Layered Coupling

ADR 0001: Layered coupling with AbstractCore

Status

Accepted (2025-12-11)

Context

AbstractRuntime needs to reuse AbstractCore capabilities (LLM calls, tool execution, structured logging), but we must keep the durable kernel stable and dependency-light.

Mixing AbstractCore imports into the kernel creates: - brittle coupling to AbstractCore internals - larger runtime footprint for processes that only need bookkeeping (stores/ledger) - harder evolution of the durable state machine

Decision

  • The kernel (abstractruntime.core, abstractruntime.storage, abstractruntime.identity) must not import AbstractCore.
  • AbstractCore integration is an explicit opt-in module:
  • abstractruntime.integrations.abstractcore

Consequences

  • Kernel remains stable and reusable across topologies.
  • AbstractCore can evolve; only the integration module needs updates.
  • We still support heavy reuse of AbstractCore in real deployments (local/remote/hybrid execution modes).

See Also