Join our largest event of the year | CamundaCon 2022 October 5-6

Icon Close
Register

Last Tuesday, I gave a presentation about “Orchestrating Microservices with Zeebe” for a London Meetup. In this blog post you can find the slides and video for the presentation – but first, a few words about the content of the presentation.

I’ve focused more on the orchestration side of an example on GitHub for rearchitecting a Java Monolith application. Instead of spending time discussing the frameworks used for the example, I’ve highlighted the importance of exposing the business logic and flow of our applications to other relevant stakeholders. You can always follow the links to download and run the example in your own Kubernertes Clusters.

The first half of the presentation was focused on the example scenario and some tools that I’ve used to build the Cloud Native version of the application. This intro covered the use of Spring Cloud Gateway with Resillient4J to provide a single entry point for all our services from outside the cluster.

After showing some of these projects in action and describing why you might want to look at them for your own projects, I spent some time describing the common pain points and challenges of building these kinds of applications and how we can use Zeebe, a workflow engine, to tackle some of these challenges.

Slides & Video

Slides

Video

During the demo, I focus 3 versions of the workflow model that built on top of each other.

First, we replace the code inside the Call for Proposals (C4P) service with a workflow model and we delegate the execution of this model to the workflow engine. The main difference in code is that now the Call for Proposal service doesn’t know or care which service is called next, that decision is now delegated to the following model (Version 1).

Version 1

The second version of the model adds on top of the first one, by changing the model, hence changing the sequence of interactions, demonstrating how useful is to have the core business logic expressed as a model that can be shared with non-technical teams.

The new model covers the scenario where we need to send a confirmation link to our potential speakers to confirm their participation, before publishing the proposal to the Agenda.

Version 2

Now that we have two versions of our workflow model, you can clearly explain how your Cloud Native applications are working today and how they were working yesterday, as these models can serve as live documentation about how your compony/organization is currently operating.

The third version of the model included an example of time-related actions, such as notifications or “Cron Jobs” that needs to be triggered at a certain point in time-related to the context of our execution. In other words, time-sensitive actions that are associated with each individual instance of our models.

Version 3

This last version exemplifies notifications that needs to be sent to the committee only when they haven’t reviewed a new proposal after a certain period of time. This kind of mechanism, allows us to implement reminders and notifications which can help us to delivery a better service to our “customers” in these case our potential speakers.

It is important to remember that, the workflow engine keeps track of all the data about these executions and send this data to ElasticSearch where it is indexed and ready for reporting and analytics. For this specific example, it might be interesting to know the average time that takes to make a decision in a proposal and configure the notifications according to a deviation from that time.

Sum up

There are loads of other interesting details inside the project, and as I mention in the presentation I want to thank mcruzdev1 for helping me to make the application better, more real and more complete. If you are interested in running this in your own cluster visit the example on GitHub and get in touch (via twitter @Salaboy or GitHub) if you want to get your hands dirty and help me and mcruzdev1 to keep improving the app to make a better example for everyone to use.

  • Process Orchestration is the Glue that keeps things together

    Could Process Orchestration be the “Glue” for...

    The API economy is taking off, propelled by an explosion of activity across API tools and platforms. According to a 2021 report from Postman, developers reported spending nearly half of their time working on APIs, and 94% of companies planned to increase their investments in APIs in 2022. API-first development is also gaining traction, with an impressive 67% of companies embracing this methodology. Companies like Twilio and Stripe emerged as early winners in this new economy, with the promise of many more to come.  APIs offer organizations an opportunity to tap into best-of-breed software components without having to spend precious time or development resources creating them from scratch. With that said, an often-overlooked aspect of the API economy is how...

    Read more
  • Increase your resilience with new regions in...

    We’re excited to announce new regions for Camunda Platform 8 SaaS that further strengthen the resilience, performance, and data requirements for our SaaS customers. Enterprise customers can now choose to create their clusters in a number of regions including Europe West, US Central, US East, and the most recent addition, Australia South East. This provides multiple benefits, such as increasing availability, allowing to set up fail-safes, adhering to regulatory requirements for regional data storage, and reduced latency due to closer physical proximity. Resilience and redundancy in technology are important for all modern organizations and are top of mind for many. Across industries, organizations need a solution that scales effectively and is resilient to provide a good base for process orchestration....

    Read more
  • Title slide that reads "Why Camunda 8"

    Why R-KOM chose Camunda Platform 8

    For the latest installment of Why Camunda 8, we spoke with R-KOM, a telecommunications company based in Regensburg, Germany.

    Read more

Ready to get started?

Still have questions?