Architecture

Infinitic is still in active development. Subscribe here to follow its progress.

Infinitic has an event-based 's architecture based on Pulsar and processed by workers:

So, when using Infinitic, we have:

  • a running Pulsar cluster - this cluster could be in our own infrastructure or hosted by a 3rd-party vendor. Infinitic uses a dedicated tenant and namespace, and we are free to use this cluster for our other needs. During developement, we can use a local standalone Pulsar.
  • some Infinitic clients (used in our apps), in charge of starting tasks / workflows, and sending events to workflows
  • multiples workers, possibly running on multiple machines, to process tasks and workflows. Those workers contain the actual code of tasks / workflows. When running tasks, those workers can also be some proxies or wrappers around our existing (micro)services.
  • databases (currently Redis) to store the states or tasks / workflows
Currently Infinitic uses Redis for the storage of states. In order to minimize the infrastructure overhead, we would like to use stateful functions instead of workers/Redis as soon as this feature is production-ready in Pulsar.
Edit this page on GitHub Updated at Mon, Oct 25, 2021