{
  "id": 13693613,
  "title": "The Gateway, the Registry and the Executor: Keeping Groq at the Edge of My Backend",
  "url": "https://urgent.news/2026/10/11/the-gateway-the-registry-and-the-executor-keeping-groq-at-the-edge-of",
  "topic": "ai",
  "section": "AI",
  "published": "2026-10-11T10:29:51.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/paulmurithi/the-gateway-the-registry-and-the-executor-keeping-groq-at-the-edge-of-my-backend-18jp"
  },
  "original_language": "en",
  "account": "The LLMClient and ToolExecutor components were built to connect three tools end-to-end in SokoFlow, an AI-powered WhatsApp ERP for Kenyan SMEs. The LLMClient acts as a gateway that translates SokoFlow's requests into provider-specific requests and vice versa, keeping provider concepts at the edge of the system. The ToolExecutor handles the execution of the selected tools and runs them against the PostgreSQL database.\n\nInitially, the LLMClient was considered a \"god object\" as it handled various tasks like tool semantics, existence checks, and retry policies. However, it was later split into three contracts: input contract, output contract, and error contract. The input contract defines what SokoFlow sends to the LLM, the output contract specifies what SokoFlow needs back, and the error contract translates provider-specific failures into application errors.\n\nThe ToolRegistry was introduced to provide a centralized location for managing tool definitions, making it easier to extend and manage the tools. By separating concerns and having a clear boundary between the LLMClient and ToolExecutor, the system becomes more maintainable, scalable, and adaptable to future changes, such as switching providers.",
  "summary": "SokoFlow AI Build Log, Week 2 of 6: the LLMClient, the ToolExecutor, and one component that almost became a god object The Week 2 goal said \"wire three tools end-to-end.\" By the end of the week, all three tools executed against PostgreSQL and came back as structured results. I still wouldn't call it end-to-end, and the reason is the most useful thing I learned this week. TL;DR Week 2 built the…",
  "key_points": [
    "LLMClient acts as gateway, translating requests between SokoFlow and providers",
    "ToolExecutor handles tool execution, runs against PostgreSQL database",
    "ToolRegistry provides centralized tool management for scalability"
  ],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}