Category

Engineering Excellence

All Camunda blog posts tagged with Engineering Excellence.

Test Your Processes With JUnit 5

If you’re a fan of JUnit5 for testing on the JVM, we have good news — there’s a brand-new library available: camunda-bpm-junit5, published as a community extension for Camunda BPM. The project is now available on Maven central, so you can start testing your processes with the latest technology. Getting started To add the extension to your project, just add the Maven dependency to your pom file: <dependency> <groupId>org.camunda.bpm.extension</groupId> <artifactId>camunda-bpm-junit5</artifactId> <version>1.0.0</version> <scope>test</scope> </dependency> Add the dependencies to JUnit 5 if you don’t already have them (they are included in the spring-boot-starter-test artifact): <dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>5.6.2</version> <scope>test</scope> </dependency> To start testing you can extend your test class with the ProcessEngineExtension: This injects the ProcessEngine configured in the camunda.cfg.xml file into…

By Ingo Richtsmeier

Letters to Santa – Automating Joy to the World, At Scale

It’s that time of year again. The time when the world’s largest order fulfillment operation experiences its heaviest load. No, not Amazon – we’re talking about Santa Claus, Inc. – the largest logistics company in the world, with a 24-hour global delivery window at peak load. This year is different, however. Earlier this year, Saint Nick clicked on an ad on his Facebook feed, one promising a digital nomad lifestyle through automating his business. Sick of the Arctic weather and the stress of traveling, the thought of sitting on a beach in Thailand – while still bringing joy to children around the world – was enticing. Santa paid for the course and applied the principles of process automation, task decomposition…

By David Simmons

Testing Process Dependencies

Welcome to the next post in our blog series: “Treat your processes like code – test them!” You can find the last post: “Testing entire process paths” here. Today’s topic is “Testing process dependencies”. For the execution of a model, there are often additional resources required. This might be source code or the dependency on other models. But how can we deal with this when testing our models? In this post we will take a closer look at the following dependencies: We will get to know another library that will help us with testing: camunda-bpm-mockito. The examples for this blog post can be found in this GitHub repository. In the last post, we took a closer look at a small…

By Dominik Horn

Camunda Halloween

It’s a very Camunda Halloween, and this project should keep you safe from the Trick-or-Treaters! It’s more than just a BPM process, of course. It’s an IoT project that uses Camunda BPM to deliver the goods. I’ll break this post up into several sections, but you will need (or at least need access to) a 3-D printer to fully realize the awesomeness here. It uses a modified Dog Treat Dispenser because I didn’t have the time (or the skills) to design a whole new Candy Dispenser from scratch. Overview This is both a hardware and a software, as well as a BPMN, project, so there are a lot of moving parts — literally and figuratively. The first thing I had…

By David Simmons

Orchestrating Microservices with Zeebe

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…

By Mauricio Salatino

CloudEvents Orchestration

A couple of weeks ago, I presented at the Knative Meetup (Video, Slides) about how you can leverage the Cloud Native workflow engine Zeebe to understand, enhance and orchestrate your applications that are already using CloudEvents. I wanted to expand a bit on how these tools can help you gain a deeper understanding of how your distributed applications are working. You can find the Demo application, installation instructions, and some videos of the application and the tools in action on GitHub. You can find the full article in the official Knative Blog. If you want to get involved with the project and help me to make the demo and the components better, please get in touch. Drop me a comment…

By Mauricio Salatino

Zeebe Helm Profiles

If you are looking to start evaluating Zeebe in your own Kubernetes Cluster or if you are already doing so with our Helm Charts you should take a look at the following GitHub repository which contains a set of configurations (profiles) based on different use cases. Zeebe Helm Profiles are just configurations for the official Zeebe Helm Charts. The idea behind these profiles is to configure Zeebe and surrounding components for different use cases. A common requirement is to evaluate Zeebe into Minikube or Kubernetes KIND, or in a Cloud Provider. For each of these scenarios, you will need to configure the charts in slightly different ways. If you want to run Zeebe on your own laptop, one of the…

By Mauricio Salatino

Orchestrating Cloud Events with Zeebe

Disclaimer: This blog post is about Cloud-Native software, containers, Cloud Events, and Workflows. It describes a concrete example that you can run yourself using Kubernetes, Helm, and Zeebe. You should be familiar with Kubernetes and Helm to follow along and will learn about Zeebe and CloudEvents on your way. While working with Kubernetes the chances are quite high that you’ll find services written in different languages and using different technologies stacks. CloudEvents (CloudEvents / CloudEvents Specifications) was born to enable these systems to exchange information by describing their events in a standard way, no matter which transports these services are using (HTTP, Messaging AMPQ/JMS, Protobuf, etc).  In such scenarios, where you have events being produced and consumed by different systems, there are common requirements that start to arise when…

By Mauricio Salatino

Try All Features of Camunda