Communication
Huddle utilizes a combination of synchronous and asynchronous communication patterns to ensure system resilience and consistency.
Asynchronous Orchestration
Section titled “Asynchronous Orchestration”The primary mechanism for complex, inter-service workflows is Temporal.
Implementation Model
Section titled “Implementation Model”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.
Why Temporal?
Section titled “Why Temporal?”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.