New version 0.13.0!

v0.13.0

Scalable Workflow Engine For Distributed Services

Add durable executions capabilities to your existing event streaming platform. Build business processes that endure failures, crashes, or server outages

Built with Apache Pulsar
LoyaltyWorkflow
public void start(User user) {
// while this user is active
while (userService.isActive(user)) {
// add points
loyaltyService.incrementPoints(140);
// wait one week
timer(Duration.ofDays(7)).await();
}
}

Introduction

Getting started

Infinitic streamlines the implementation of an event-driven architecture in weeks instead of months. It provides peace of mind when creating resilient business processes, by ensuring that a failure in any component will never break your workflows.

Infinitic is ideal for a wide range of applications requiring high scalability and high reliability, such as:

  • Orchestrating microservices
  • Managing distributed transactions
  • Operating data pipelines
  • Implementing business processes
  • And more

Building with Infinitic requires running:

  • A database for saving the current workflow states (currently supporting Redis and MySQL, adding more is an easy task)
  • An event streaming platform (currently supporting Apache Pulsar) to safely store the messages generated by Infinitic and distribute them to workers.
  • Workers: applications built with the Infinitic SDK that will consume messages, process them and produce messages as a response. The SDK itself provides the implementation of event consumers and producers, manages data serialisation, topics creation and schema, and error management. You only need to write your application-specific code:
    • Workflow Workers are in charge of piloting the execution of your business processes. You only need to code their description using Services' stubs;
    • Services Workers are in charge of executing your Services. You need to code the actual implementation of your Services or the API calls to them. Everything else related to the communication with Pulsar is handled by Infinitic.

You don't need to worry about external dependencies (database and Pulsar) when using Infinitic. The framework handles everything for you. The only requirement is to tell workers how to connect to them and ensure they have enough capacity to handle your workload. Managed instances are a good solution if you're not used to those technologies.

The benefits of using Infinitic:

  • Flexibility : Embrace the unconstrained full power of programming languages with loops, conditions, and data manipulation to define your durable processes
  • Ease of Maintenance : Workflows are easy to understand, consolidated in a single class, and version-controlled like any standard codebase.
  • Enhanced Observability : Comprehensive monitoring is in place, with detailed insights available on dashboards.
  • Unmatched Reliability : Workflows are resilient to service or worker failures, ensuring consistent operation.
  • High Scalability: Infinitic employs an event-driven architecture at its core, which guarantees exceptional scalability.

Infinitic is currently available in Java and Kotlin.

Click the Java button in the top navigation bar to select the programming language for this documentation.

Infinitic can support more programming languages. Contact us if interested.

Terminology

Learn the different components of Infinitic: Services, Tasks, Workflows, Workers, Clients.

Under The Hood

Learn how workflows processed by Infinitic are fully event-driven, horizontally scalable, and immune to errors.

Workflow Examples

Workflow examples showcasing how easy it is to build complex business processes and how powerful Infinitic is.

Hello World

Step-by-type guide to build our first workflow.