• +43 660 1453541
  • contact@germaniumhq.com

Blog

Writing BPMN Let's Encrypt Kubernetes Operators in Python II

As I already mentioned, I wasn't too happy about the currently available DNS operators out there that integrate with let's encrypt. What I wanted was one that works right of the box, and allows me to add new Ingress objects, and magically generate their TLS certificates. I'm going to break down in a small mini-series of articles on how I ended up implementing it.


Read more

Writing BPMN Let's Encrypt Kubernetes Operators in Python I

As I already mentioned, I wasn't too happy about the currently available DNS operators out there that integrate with let's encrypt. What I wanted was one that works right of the box, and allows me to add new Ingress objects, and magically generate their TLS certificates. I'm going to break down in a small mini-series of articles on how I ended up implementing it.


Read more

Optimizing Docker Containers

When creating containers, having multiple layers dramatically reduces the time of development. Unfortunately, having a bunch of layers is a bad practice. So how do we reconcile the two? Simple, by compiling the Dockerfiles with docker-optimizer.


Read more

Migrating From Docker to Kubernetes

If you already have some containerized infrastructure running with docker-compose, or just plain docker containers that are provisioned by a config management tool, you definitely want to switch to Kubernetes. Here's how I did it.


Read more

Using Boundary Timer Events in Adhesive BPMN

When having a critical long running task, it's imperative we get immediate feedback on things that run longer than they are allowed. With the new Timer boundary events, that's trivial to model.


Read more

Force Named Argument Calling in Python Revisited

If you remember the last article on how to force function calling, by always specifying the argument names in our previous article, we were going with an *args argument that captured extra junk. Turns out there's an easier way. Simply use *. Unbelievable!


Read more

Containerizing the Build Process

Having the adhesive build process as code it's a nice feature to have. In combination with containers it makes the source code the only truth on how the build is being performed. But that still means we have a dependency now on the build system itself. So how do we get rid of it? We're going to containerize the local build system.


Read more

Event Deduplication in BPMN

When ingesting a lot of events it makes sense to process only the last relevant event from the received events, and discard the previous ones. Since BMPN already works with execution tokens, which are in themselves events, how can we drop duplicated events?


Read more

Creating REST Endpoints Using BPMN Messages in Python

Sometimes we just want to process events that arrive from an outside system, but still model these in an BPMN process. BPMN natively supports that representation in the form of input messages starting events. We'll be wiring Flask to stream messages directly into the process using the message_calback function.


Read more

Germanium Selector Builder Chrome Plugin Is Now Available

After a lot of work, the Germanium Selector Builder Chrome Plugin is finally completed. It's now available on the Chrome Store as both a Free and a Pro Version.


Read more