From Apache KIE SonataFlow and Kogito to Quarkus Flow: Migrating to Open Workflow 1.0

If you have been running Kogito Serverless Workflows in production, you are likely aware that the landscape has shifted. The specification evolved from version 0.8 to 1.0.0, the project was renamed from Serverless Workflow to Open Workflow Specification, and the runtime engine moved from Apache KIE to the Quarkiverse. This is not a minor version bump — it is a fundamental paradigm shift in how workflows are defined, moving from explicit state declarations to task-based orchestration. ...

August 19, 2026 · 11 min

When Workflow Validation Fails: Lessons from Brazil's TSE Affiliation Incident

On August 12, 2026, at 11:17 PM — two days before Brazil’s candidate registration deadline — Senator Flávio Bolsonaro’s party affiliation was changed in the TSE (Tribunal Superior Eleitoral) database from PL to Partido Missão. The change blocked his presidential candidacy registration. The TSE confirmed there was no system breach: the affiliation was submitted through Missão’s party system, which internally uses the party Secretary’s credentials to communicate with TSE. What followed was a political firestorm, a police investigation, and mutual accusations between the parties involved. ...

August 17, 2026 · 10 min

How Quarkus Flow Talks to the World: The Messaging Architecture

A workflow engine that can’t talk to the outside world is just a fancy state machine running in isolation. The moment you need event-driven orchestration — pausing for a human approval, reacting to an external signal, emitting a domain event — you need a messaging bridge. And building one forces a decision: do you couple to Kafka? AMQP? Roll your own CloudEvent serialization and hope every connector plays nice? In previous posts, we explored why declarative workflows beat hand-rolled state machines and how Petri net semantics power parallel execution. This post goes one layer deeper: how Quarkus Flow actually moves events in and out of the engine, and why the answer is simpler than you might expect. ...

July 31, 2026 · 7 min

The Mathematical Root: Petri Nets and Parallel Executions

In our previous discussion on the “polling trap,” we established that managing long-running state is an infrastructure concern, not a business logic one. But when we move beyond simple pauses and step into the realm of concurrent execution, the architectural friction multiplies exponentially. Consider a standard e-commerce order process. When a user checks out, the system must perform two discrete remote operations: (a) reserve the items via the Inventory service, and (b) calculate the delivery routes via the Logistics service. ...

May 27, 2026 · 6 min

What are workflows and why do I need them?

In distributed architectures, managing the state of a paused or long-running process is the fastest way to entangle your core business logic with infrastructure. Consider a seemingly straightforward process: an employee requests access to a secure cloud environment. The sequence is simple: (a) log the request, (b) wait for a manager to approve it, and then (c) provision the access. The inherent challenge is time. The manager might approve it in five seconds, or they might be on vacation for three days. You obviously aren’t going to use Thread.sleep() and hold a server thread hostage waiting for a response. ...

May 15, 2026 · 5 min

Please stop vibe coding

The other day, this meme appeared on my timeline. This PR looks suspicious… Shout-out to my friend Edoardo Vacchi I kept hearing about vibe coding here and there until someone sent me an article about it. The article went deep into “prompt engineering” and how LLMs will eventually replace us all. Last month, a (non-tech) friend bragged about building a Discord bot with zero code. A few days later, he came back saying he’d fallen into an endless rabbit hole. ...

August 8, 2025 · 3 min