The Camuda hackdays are a wonderful time of year where the people in the company who like to code spend about three days working on their own fun passion projects, either in a team or by themselves. These projects have often become the catalyst for new features and community extensions. This year we had more people than ever joining for the hackdays and of course for the first time we did it fully remote! Supported by a lovely care package from the wonderful Camunda backoffice team. Hence all the lovely hats in the pictures below! 

More than 20 teams gathered together. At the end of the three days we got to watch each team present their project. The kinds of projects I watched during the presentation were really diverse, there was a project by Christian Nicolai exploring if there are benefits to us using Ceph internally and we were also treated to Sebastian Stamm’s re-invention of video conferencing, which he kindly recorded and uploaded for posterity. I decided to pick out a few projects to talk about here. The reason I picked them is because I found them interesting from a Camunda BPM perspective or I noticed strong benefits they would have in being promoted to the rest of the community. Hopefully some of these projects will go on to greater lives as community supported extensions or even fully fledged features.

Deployment Descriptor Editor

Chris Allen and Andreas Remdthttps://github.com/Camunda-ChrisAllen/deployment-descriptor-editor

Right now If you’re interested in knowing what the current properties of the Camunda engine are, that’s no problem – just follow these instructions

  • Find the project source code and open it up somewhere
  • Dig around until you find the application yaml file (usually in src/resources)
  • Open it up and dive into the yaml file. You’ll likely find something like this:

You might think to yourself: that’s not a lot of settings and you’d be right because all the default settings are hidden – so if you want to do something like change the name of the process engine, well, no problem – just make your way to the docs page on engine settings and make sure you add it to the right place in the application.yml file. Also – this works differently if you want to deploy on an application server… anyway not ideal… 

The short version of what this project does is: expose the properties via REST and visualize them so that you can view, edit and update them without having to mess around in the project. It’s just fantastic. A wonderful thing as well is that it shows ALL the settings including default values, so no need to mess around in the docs.

The Plugin Plugin

Martin Stamm — https://github.com/marstamm/cockpit-plugin-plugin

We’ve had a plugin mechanism in Cockpit for a number of years, but as of the next release we’re going to build a whole new way to add cockpit plugins. As the developer tasked with bringing this new system to life, Martin has seen it fit to create a project which lets you plug in… plugins.. From the old plugin system.. It’s the plugin plugin! 

Testing Process with JUnit 5

Ingo Richtsmeier https://github.com/ingorichtsmeier/hackdays2020-junit5

Something that has been talked about on the Camunda forum for a little while now is a discussion about the potential benefits of being able to test Camunda processes using JUnit 5 (as opposed to JUnit 4). Ingo decided to investigate during the hackdays and built a project which helps users answer that question. Starting with some groundwork done by our very own Yana, he detailed his findings in the readme and the main takeaways for me are:

  • It’s not too difficult to get it working
  • There isn’t really a “killer feature” that would make someone want to use it
  • But some things are certainly made easier.

Bpmn.js Modeler History Panel

Omran Abazeedhttps://github.com/OmranAbazid/bpmnjs-history-panel

This project is something that I didn’t know I wanted until I saw it being shown off. This is an addition to bpmnjs developed by Omran (aka password), one of our front end developers for Optimize, and what this does is to simply store the history while you build your model. When I saw it I was thinking back to all the times that I’d helped people model their processes only to find out that we had made some fundamental mistake andneeded to hit Ctrl+Z and hope that we’d find a place where the model still made sense. This feature would make collaborative modeling so much easier and I really love it.

Salesforce to Harvest Integration

DMN Testing Plugin

Stefan Wiese, Max Trumpf and Maciej Barelkowski https://github.com/bpmn-io/dmn-testing-plugin

Testing DMN tables and DRD models is a topic that comes up a lot within the community. Right now you can do some casual testing by using the DMN simulator or a more robust test by using JUnit. Neither of these cases are ideal as you need to save your model and upload it to some other system every time you want to test it. That is what makes this plugin so appealing and I think it’s going to become one of the more popular plugins if it gets a little more attention from the community. With this plugin you can test DMN and DRDs without needing to leave the comfort of the Camunda Modeler! It runs the engine in the background and offers a neat UI which generates the required input fields. It’s still a prototype but I hope that if people find the idea worthwhile, a few well-placed pull requests should make this a solid part of your testing procedure. 

Zeebe Event Log debug and inspection tool

Deepthi Akkoorath, Nico Korthout, Chris Zelldon https://github.com/Zelldon/zdb

The Zeebe event log is a black box. When everything “just works”, it is magical – and mysterious. When something goes wrong, however, that sealed black box is just… mysterious.

But no longer! With `zdb`, you now have a command-line tool for inspecting the Zeebe internal state or the partition log.

It is written by three of the core Zeebe engineers – Chris, Deepthi, and Nico, who work on the log implementation itself, and it even comes with a subcommand autocompletion file for your shell.

You can examine a log file for inconsistencies, as well as querying it for various states. While you can’t use it to repair an inconsistent log file (like chkdsk, or fsck), you can use it to get debugging information that can lead to faster root cause analysis and getting any bugs that you run into fixed, faster.

Zeebe AWS EventBridge

Bernd Ruecker, Cornelius Suermannhttps://github.com/berndruecker/zeebe-aws-event-bridge

Zeebe integrations are all the rage, and Bernd and Cornelius created another one – the Zeebe AWS EventBridge, which allows you to integrate your application with Amazon Web Services via EventBridge.

It is a Zeebe task worker that connects to a Camunda Cloud Zeebe cluster, and services tasks in running workflow instances. The worker provides a slick web interface to allow you to configure the integration.

Check out the demo in the repository, and also the presentation slide deck.

So..?

It was really tough to write such a short blog post on the hackday projects but I think by highlighting the things I feel have the most potential for the community it will increase how they are used and hopefully some of them will end up being another feature that we never understood how we ever lived without. If something strikes your fancy – use it, build onto it and become a contributing community member.

  • Democratizing Education with Process Automation

    How did Fundacred, a non-profit organization democratizing access to education throughout Brazil, evolve quickly to meet the needs of students during the COVID 19 crisis and beyond? For more than 40 years Fundacred has been committed to developing Brazil’s education at all levels of learning, through management and self-financing platforms that enable students to access loans to help them through their studies. Processing loan applications quickly and accurately is critical to both customer experience and business efficiency, but the legacy tech stack at the 45 year old not-for-profit didn’t keep pace with its evolving needs. Samuel Domingues, IT Manager – Information Technology, and his team saw that they needed to create a clear and mapped system of business process and...

    Read more
  • Traceable Test Coverage for all process stakeholders

    Dominik Horn is Co-Founder of FlowSquad — specialists in process automation and individual software development. You may know Dominik through his COVID-19 pandemic work, where FlowSquad teamed up with RemedyMatch, to implement Camunda as the backend of its logistics solution, quickly and accurately matching thousands of protective items with the people who need them each day. In this guest post, Dominik explains why FlowSquad has developed a platform that ensures traceability for all stakeholders and seamless integration into your CI/CD infrastructure: In software development, test coverage is an essential indicator of the quality of an application. Only through comprehensive and systematic testing can errors be detected and fixed early on. For this reason, there are numerous test libraries for almost...

    Read more
  • Publishing “Practical Process Automation”

    A Book about Orchestration and Integration in Microservices and Cloud-Native Architectures In today’s IT architectures, microservices and serverless functions play an increasingly important role. But how can you create meaningful, comprehensive, and connected business solutions if the individual components are decoupled and independent by design? How does this all affect business processes and process automation? I’ve been thinking about this question for a long time now, and I discussed it with many customers in real-life scenarios. This resulted in many blog posts, conference talks and articles. This again led to countless discussions, that showed one thing clearly: We need guidance. Today I am thrilled to announce that I’ve condensed my experience (and of course the whole Camunda team’s to some extent) in...

    Read more