Client Lifecycle Management
Reuse a singleton client where possible.
Client Lifecycle Management
from armoriq_sdk import ArmorIQClient
# ✓ Good - Singleton pattern
class AgentService:
_client = None
@classmethod
def get_client(cls):
if cls._client is None:
cls._client = ArmorIQClient(...)
return cls._client
# ✗ Bad - Creating clients repeatedly
def process_request():
client = ArmorIQClient(...) # New client every call!
...import { ArmorIQClient } from '@armoriq/sdk';
// ✓ Good - Singleton pattern
class AgentService {
private static client: ArmorIQClient | null = null;
static getClient(): ArmorIQClient {
if (!AgentService.client) {
AgentService.client = new ArmorIQClient({
apiKey: process.env.ARMORIQ_API_KEY!,
userId: process.env.USER_ID!,
agentId: process.env.AGENT_ID!
});
}
return AgentService.client;
}
static close(): void {
if (AgentService.client) {
AgentService.client.close();
AgentService.client = null;
}
}
}
// ✗ Bad - Creating clients repeatedly
async function processRequest() {
const client = new ArmorIQClient({...}); // New client every call!
// ...
}