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.

  • Camunda Cloud Console Go Client Library

    When working with multiple projects and multiple Cloud Services automation becomes a must. Camunda Cloud resources such as Zeebe Clusters and Camunda Operate are no different from other components such as Databases, or Message brokers, these need to be provisioned for your applications to connect with. This project allows you to connect to the Camunda Cloud Console using the Go language or a command-line tool, allowing you to create automation around when remote environments are created and destroyed. You can connect to these APIs using any language as these APIs are just REST endpoints, but if you have automated pipelines using a command-line tool might be the best fit for you.  This project provides a binary that you can download...

    Read more
  • The Journey from Camunda BPM to Camunda...

    You might have noticed something a little different about our recent release announcement: Camunda BPM is now Camunda Platform. We’ve renamed our process automation solution to better reflect our mission to help organizations automate any process, anywhere. And, to be perfectly honest, we are also keeping up with what we’re hearing in the field — many of our users and customers already informally refer to “Camunda Platform” or even just “the platform” or simply “Camunda” when talking about the product. During CamundaCon 2020.2, our CEO, Jakob Freund, explained that processes are the algorithms that determine how an organization runs. They define how we work within our own team or across teams, and they influence the way we deal with our...

    Read more
  • Countdown to the Camunda Community Summit

    Introducing our speaker line-up and the Camunda Community Awards  Camunda has always been focused on creating an excellent experience for developers everywhere who are trying to automate processes. From our days as a small process automation consulting firm to the powerful products used by hundreds around the globe, our engineering mindset and commitment to our community has always been at the heart of what we do. Which is why we’re excited to share the final speaker line-up for our first ever Camunda Community Summit, taking place April 27-28, 2021.  Highlights will include presentations from: Adrianna Tan, San Francisco Digital Services, will explore Automation in Local Government Digital Services in a Post-Pandemic World.  Markus Stahl, Deutsche Post Adress GmbH presenting: Open...

    Read more