Temporal
Temporal is an open-source platform for orchestrating highly reliable, long-running workflows in a microservices architecture. It allows developers to write workflows in a number of languages and ensures that these workflows are resilient to failures, enabling seamless execution and state persistence. Temporal attempts to abstract the complexities of state management, making it easier to develop and maintain distributed systems.
Benefits:
- Resilience: Automatic handling of retries, timeouts, and state persistence ensures workflows are robust and fault-tolerant.
- Developer Productivity: Simplifies the development of distributed systems by abstracting the complexities of workflow orchestration.
- Flexibility: Supports multiple programming languages, allowing teams to use their preferred language and tools.
- Observability: Provides visibility into the state of workflows, making it easier to monitor and debug issues.
Challenges:
- Language Support: Temporal's support for different languages does not include Elixir or Rust (although an official Rust SDK is apparently in development).
- Learning Curve: Teams need to invest time in understanding Temporal's concepts and integrating it with their existing systems.
- Complexity: While Temporal simplifies many aspects of distributed workflows, it introduces its own set of abstractions that teams need to grasp.
Trial Use Case:
Temporal has currently been selected by the payments domain (Sapphire team) to initially coordinate the loan management workflows. There is enough complexity within these workflows and there is curerntly limited handling of the failure scenarios. The team is looking to leverage Temporal to handle the orchestration of these workflows and to provide a more robust and resilient solution.
Given the limited Rust support, we will be defining the workflows in another language (likely Python, TBD) before the Rust SDK is available. Activity code and interacting with the workflows through the client SDK can and will be done in Rust.
For more docs on the initial POC and ongoing purchase, check out the Google Drive folder