Skip to content

Communication

Huddle utilizes a combination of synchronous and asynchronous communication patterns to ensure system resilience and consistency.

The primary mechanism for complex, inter-service workflows is Temporal.

Huddle employs a distributed worker model using Temporal:

  • Dedicated Task Queues: Each inter-service communication path has a dedicated Temporal task queue.
  • Service Workers: Services like RAG and Notification act as Temporal workers, constantly consuming and executing jobs from their respective task queues.
  • Orchestration Client: The API service acts as a Temporal client, triggering workflows upon client requests or internal system events.

We chose Temporal as our orchestration engine for several key reasons:

  • Durable Execution: Critical workflows, such as complex document parsing or multi-stage bond fulfillment, must be resilient. Temporal ensures these processes run to completion in the background, surviving service restarts or transient network issues.
  • Language Agnostic: With SDKs for most major languages (including Go, Python, and TypeScript), we can maintain type safety and idiomatic code across our polyglot microservices stack.
  • Developer Experience: Temporal provides an open-source platform with comprehensive documentation and excellent tooling, allowing for rapid development and transparent debugging of distributed systems.