You're unable to read via this Friend Link since it's expired. Learn more
Member-only story
Create Distributed, Scalable, Durable, and Highly Available Software— With Cadence
Managing microservices or distributed systems has many challenges, Uber has a solution for many of the issues.

Uber is a small startup company, you might have heard about them before. They provide many open-source tools that their engineering team builds. And let me tell you, they are no jokers, they seem like a very competent bunch of developers.
Cadence is a distributed, scalable, durable, and highly available orchestration engine — Uber GitHub Repository
Have you tried Cadence before? If not, I can promise that you are in for a treat. Cadence is a framework for developing distributed systems.
I know the word framework scares many people in the Go community. Building a scalable, fault tolerant system that performs is very hard, and not something you do easily on your own. Cadence helps obscure much of the heavy lifting needed for a large-scale distributed system.
If you want to develop a distributed system that has to trigger certain actions based on the events from other services, and you want those events to be fail-proof, have retry logic implemented, then you have come to the right place.
If you wonder about the detailed structure of how cadence solves this, you can read their deployment topology.
Cadence allows us to develop services that run workflows, a set of functions in a certain order based on events and signals from other services.
In advance I want to say sorry for the very lengthy article, make sure to bring coffee
Let us begin learning how to use this amazing tool. The full code of what we will build can be found on GitHub.
Setup Cadence Server By Docker-Compose
The first thing we need is to run a Cadence server. The easiest way to do this is by using Docker-Compose. There are a few examples of docker-compose files in the Cadence Github, the different files use different persistent storage solutions. In my case, I will use MySQL.