Is there an existing issue for this?
What happened?
📌 Issue Overview
The Weaviate backend client repeatedly connects and disconnects on every database operation instead of reusing a persistent connection, causing unnecessary performance overhead.
🔍 Root Cause
get_weaviate_client() calls await client.connect() on entry and await client.close() on exit
- All Weaviate operations use
async with get_weaviate_client(), triggering a full connect/disconnect cycle per request
- This occurs despite having a global client instance
🚨 Actual Behavior
- A new connection is established for every operation
- The connection is closed immediately after use
- No connection pooling or reuse
- Adds ~10–50ms latency per query
- Wastes resources and becomes a scalability bottleneck under load
@asynccontextmanager
async def get_weaviate_client():
client = get_client()
try:
await client.connect() # connects every time
yield client
finally:
await client.close() # disconnects every time
Record
Is there an existing issue for this?
What happened?
📌 Issue Overview
The Weaviate backend client repeatedly connects and disconnects on every database operation instead of reusing a persistent connection, causing unnecessary performance overhead.
🔍 Root Cause
get_weaviate_client()callsawait client.connect()on entry andawait client.close()on exitasync with get_weaviate_client(), triggering a full connect/disconnect cycle per request🚨 Actual Behavior
Record