# 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.