Time flows downward. Solid = a call/request; dashed = a reply. ◀ marks server→client commands. Yellow notes = what happens inside an actor. Every message is from the real loop/module/foundation + SDK code.
Grounded in grpc_source_server.py, grpc_connection.py, grpc_source_connector.py,
source_service.py, in_memory_source_session.py, grpc_source.py (loop/module/foundation)
and the SDK grpc_source_client.py. Close handling reflects the just-applied fix (SDK stops the sender, keeps the control connection).