import asyncio async def fanout_search(adapters, query): tasks = [adapter.search(query) for adapter in adapters] results = await asyncio.gather(*tasks, return_exceptions=True) docs = [] for r in results: if isinstance(r, list): docs.extend(r) return docs