Often described as a next-generation Kafka, Apache Pulsar is a rising star in the toolset of developers. Pulsar is a multi-tenant, high-performance solution for server-to-server messaging and is often used as as the backbone for scalable applications.

Pulsar can be used with Kotlin since it is written in Java. However, its API does not consider the great features that Kotlin brings, such as data classes, coroutines, or reflectionless serialization.

In this article, I’ll discuss how to use Pulsar with idiomatic Kotlin. …

In my previous article, I’ve described how code can be used to semantically describe workflows in a distributed environment. But I did not explain how it can be used to actually pilot those workflows. How a class — apparently written to run on a single thread — can orchestrate long-running workflows in a distributed environment where services fail from time to time?

Example of a simple workflow that describes and orchestrates 3 tasks sequentially, each of which can be processed in distributed servers

As there is no magic in computer science, a “workflow as code” engine (such as Infinitic) will need to be able to store the state of a workflow in a persistent storage and restart a workflow from where…

As a back-end developer, you are often asked to build some structured orchestration of tasks such as microservices orchestrations, distributed transactions, data pipelines or some business logic. In all those examples you must ensure that the different types of tasks are processed according to a given scenario. This scenario can be simple such as sequential tasks, or a lot more complex with scenarios depending on time, with a complex decision diagram, or depending on external signals for example.

As soon as you are facing moderately complex workflows, you may be tempted to use a DSL, coupled with a dedicated engine…

As soon as your technical team reaches a certain size, you usually start to divide your platform into specialized servers (aka microservices) that are individually more manageable by a dedicated small team. But those different services still need to smoothly work together to deliver your business goals.

In this article, I describe different approaches and why I think Apache Pulsar is an ideal choice to build a modern orchestration engine at scale based on what we learnt building Zenaton. If you are interested to follow this work, please subscribe here.

Problem: booking a flight + hotel

Let’s consider a typical “flight+hotel booking” process with the following…

After our seed round, we (I) did not manage to reach a clear product-market fit, nor did we change the product quickly enough in order to reach it. So with our investors we decided to give the rest of the money back and close Zenaton’s service a few weeks from now 😢.

There are multiple explanations for this situation, and I’m writing another blog post to share what I learned on the way. But today, I would like to dedicate this blog post to thank everyone who was important to Zenaton and to me:

The Family was incredibly helpful at…

Getting started with Zenaton’s native integration with Clever Cloud

At Zenaton, our ambition is to offer a powerful workflow engine that is also easy to implement so that tech teams can spend more time writing code and business logic and less time maintaining infrastructure.

To that end, we know that when implementing a new tool or service, it’s important to be up and running as fast as possible.

So we are excited that our friends at Clever Cloud have added a native integration to allow any Clever Cloud user to deploy their Zenaton workflows in their application by just adding a few environment variables on their Clever Cloud dashboard.

From the early days of Zenaton, we have provided an easy way to orchestrate asynchronous jobs to build business processes. We have now made it easy for developers to monitor all of their jobs so that they know that everything is running smoothly and have the tools to quickly troubleshoot and fix errors.

We have just released Workflow Monitoring - a big feature that can be accessed through the Zenaton’s dashboard. It provides real time visuals for all workflows and tasks and can be accessed by anyone on the team. The dashboard includes a high level view of all the…

Zenaton was founded to help developers to code and run marketing and business processes such as:

The order process for a taxi app

Why are these so important? The lean startup methodology has become common practice in the startup world and you know the importance of iterating on your ideas. For most companies, a big part of the user experience is based on the quality of your processes. But iterating on processes has a hidden cost:

The most important feature of a marketplace is how it organizes communications between sellers and buyers. This article illustrates how it can easily be implemented using Zenaton, without any cron jobs, or database requests or modifications — just pure & simple code.

The following examples are presented in PHP, but are similar in other languages supported by Zenaton. If there is something you do not understand, please read the documentation and/or leave us a comment below.

Use Case

Lets assume we operate a marketplace where users post a request for a service and several providers can bid and provide this service. …

This week, a startup doing some vehicle tracking asked me if Zenaton could be used to send an ETA (estimated time of arrival) alert. The idea is to send an alert (text, email, push notification, etc) one hour before a vehicle arrives at its destination.

So here is an example of how we could build a workflow using Zenaton and accomplish this feature without using any additional infrastructure — just write it into our code let the Zenaton workflow engine compute the logic and execute the tasks on our workers.

The following examples are presented in PHP, but are similar…

Gilles Barbier

Making distributed systems and workflows easy at https://infinitic.io. Previously founder at Zenaton and director at The Family — proud dad

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store