Home Technology Bigbasket’s workflow implementation using Activiti

Bigbasket’s workflow implementation using Activiti

by Nikhil Kesari

Workflows are everywhere in our day to day life. Somehow we all part of some workflow. This could be as simple applying for leave or complex government procedures. Workflow could be manual or automated and both.

Why do we need a workflow engine if we can code the flow?
The world is constantly changing thus business processes also change in order to improve productivity, increase transparency, handle changing environments, much more. Workflow engines always welcomes these changes wholeheartedly.

Workflow provides flexibility to change the flow with minimum effort and code change. Yeah pretty amazing, it maintains different versions of the same flow in case of updates. Which allows us to deploy a new version and not breaking older ones that are running.

Why Activiti?
Activiti is an open-source java-based workflow engine, which implements BPMN specification provided by OMG. It a battle-tested framework that is heavily used in business process automation in enterprises. For more details, you can read on Activiti.

A very obvious question arises is why Activiti, why not other frameworks. Before choosing Activiti, we explored a lot of frameworks irrespective of languages. We found Activiti as a clear winner because

  1. It is backed by alfresco, and the releases are on time.
  2. It has good community support compared to others.
  3. It is lightweight and developer-friendly.

How did we implement it?

Here at bigbasket, we are following microservice architecture so, it is created as a separate microservice.

We have created a microservice which is a wrapper uses activiti-engine to parse and run BPMN diagrams, which has custom RPCs instrumented to serve our purpose.

Where workflows could be used in e-commerce?
There is a lot of ground can be automated, like vendor onboarding, product introduction process, price changes, refunds claims, content approval, etc. All of these processes have roles, authorization, time, availability, sequence involved, which makes them a crucial implementation of a workflow.

While using Activiti in our workflow implementation, our experience was pretty awesome. It serves the BPMN standard implementation. While BPMN is only a small part of Activiti, It has a lot of things to offer. It has an out of the box transaction implementation. From the developer’s perspective, Activiti is a great implementation of BPMN standard.

stay tuned for more about Activiti…

You may also like

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: