# Presentation

Zenaton is a hosted orchestration service for asynchronous processes. It makes easy to build:

  • personnalized communication to your users, based on what they do (or dont do)
  • ETL processes and data synchronization between different services
  • complex business logic
  • custom integrations

When building those, Zenaton lets us focus on what to do instead of how to do it. It significatly improves the time to market and can spare 000's hours of engineering time. Even more importantly, we maintain and improve these processes at a faster rate.

# How it works?

Zenaton allows you to maintain a clear separation between the control flow of a process (described by a workflow) and the actual implementation of its parts (done within tasks):

  • workflows are written in node.js, using Zenaton functions. Even sophisticated time-dependant, event-driven processes can be easily implemented.
  • tasks are written in node.js also, and most of the time are implemented with a single call - to a database - to a SAAS API - to an internal API or microservice (in our domain).

The recommended way to use Zenaton is to gather the source code of our workflows and tasks in their own repository (your Zenaton project). That way, you can update them without being dependent on the developement cycle of your core applications.

architecture overview

# Infrastructure

The only thing you need to use Zenaton in production is to have your Zenaton project installed and running in one server (or more - depending of your load), the Zenaton worker(s). You do not need to invest in building or maintaining specialized infrastructure (queuing systems, states database, or event-driven architecture). Zenaton provides the benefit of a production-ready platform.


# Monitoring and Error Handling

Everything processed through Zenaton is monitored and managed. When an error is thrown in a task, an alert is sent, the error is shown in Zenaton dashboard, and the task is automatically retried according to the retry strategy defined for it.

If this failed task belongs to a workflow, this will automatically resume from where it was, as soon the task successfully completes.