Introduction to dFakto States
General Description
dFakto States is an application that enables you to coordinate the components of distributed applications and microservices using visual workflows.
You build applications from individual components that each perform a discrete function, or task, allowing you to scale and change applications quickly.
dFakto States provides a reliable way to coordinate components and step through the functions of your application. dFakto States offers a graphical console to visualize the components of your application as a series of steps. It automatically triggers and tracks each step, and retries when there are errors, so your application executes in order and as expected, every time. dFakto States logs the state of each step, so when things do go wrong, you can diagnose and debug problems quickly.
You can run your tasks on any system that has access to dFakto State server.
Main concepts
Tasks
All work in your state machine is done by tasks, which perform work by using an activity, a web service or by passing parameters to the API actions of other services.
Activities
An activity enables you to associate the work performed by an activity worker, which is code running somewhere, with a specific task in your state machine. You can host activity workers on any computer having access to dFakto States Web API.
State Machines
A state machine coordinates components of distributed applications and microservices to create applications, called state machines. They are a series of JSON objects written in the Amazon State Language, which enable you to set up a logical flux between different states.
A finite state machine can express an algorithm as a number of states, their relationships, and their input and output. dFakto States allows you to coordinate individual tasks by expressing your workflow as a finite state machine.
Individual states can make decisions based on their input, perform actions, and pass output to other states. In dFakto States, you express your workflows in the Amazon States Language.
States are elements in your state machine. A state is referred to by its name, which can be any string, but which must be unique within the scope of the entire state machine.
States can perform various functions in your state machine:
Do some work in your state machine (a Task state).
Make a choice between branches of execution (a Choice state)
Stop an execution with a failure or success (a Fail or Succeed state)
Pass its input to its output or inject some fixed data (a Pass state)
Provide a delay for a certain amount of time or until a specified time/date (a Wait state)
Begin parallel branches of execution (a Parallel state)
For more information about these states, please refer to the Amazon State Language specification.
Executions
A state machine execution occurs when a state machine runs and performs its tasks. Each state machine can have multiple simultaneous executions.
Each execution tracks all the information related to each Task executed. A complete log of all the history of execution is kept for future analysis.