ADR 0002: Native sync and async separation#
Context#
Notebooks and services need both modes without event-loop ownership failures.
Decision#
Maintain native sync and async transports, services, resolvers, clients, limiters, and backoff.
Alternatives#
Running async from sync, running sync in executors, and a mutable mode flag were considered.
Consequences#
The two paths have matching capabilities but explicit lifecycles.
Rejected shortcuts#
Loop runners, loop patching, and hidden thread adaptation are rejected.
Operational implications#
Users select Client or AsyncClient; injected resources remain caller-owned.