How Elphinstone works with Temporal.

Temporal Orchestration (A Guide)

Prerequisites

Familiarity with Golang and Docker Containerization.

Determinism (CS).

Patience.

Resources

https://go.dev/tour/welcome/1

https://sagikazarmark.github.io/temporal-intro-workshop/#/

An Introduction

Short TL;DR :- Orchestration is the process of scheduling asynchronous tasks execution, keeping track of their results and their failures. Temporal is the orchestrator here. We interface with the Temporal Server directly when we want to execute some Workflow.

A Workflow is a bunch of Tasks that is executed on some Worker.

For more information checkout the official Temporal documentation

Mostly we will be writing Worker programs in Golang (Best supported language for the use case).

Workers

Workers are programs written using the temporal SDK (GoLang). They communicate with the temporal server using gRPC protocol. Within the worker program are instructions to execute some workflow. Whenever Temporal Server receives a request to execute a workflow. It starts the execution on the worker program rather than executing the workflow on it’s own. The server keeps track of the state of execution and the worker actually performs the execution. Upon completion, it sends the result of the workflow back to Temporal.

Deployment

https://docs.temporal.io/blog/auto-setup/

Best Practices

https://github.com/temporalio/samples-go.git


Validation API

This is a microservice that enables us to verify our users through various checks as required by the SECP. It is built on GoLang and uses Mongodb for persistent data. The service is asynchronous and only interfaces with the Elphinstone Backend. It uses Temporal for orchestrating it’s tasks. Following are it’s functions :

Stifle validation.

PMD verification.

IBFT verification.

NADRA verification.

Leave a Comment

Your email address will not be published. Required fields are marked *

12 − 9 =