ArmorIQ LogoArmorIQ SDK

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!
  // ...
}

On this page