Menu

1 / 2

Why I'm Building a Typed Workflow Language Instead of Writing Glue Code

DEV Community·Brock Claussen·6 months ago
#dJlIBq8y
#why#gust#workflow#string#code
Reading 0:00
15s threshold

Post 1 was the diagnosis: workflow logic keeps wanting to be more structured than ordinary glue code, but less heavy than a full workflow platform. The contract is hiding in the implementation, and that's where the production incidents come from.

This one is about what should replace it.

I didn't want to start by building a control plane. I wanted the map first.

A way to describe a workflow as a contract:

these are the states

these are the transitions

this is the data each state carries

these are the side effects

these are the committed actions

this is the code the host application must provide

Then I wanted that contract to compile into boring, ordinary code.

That's the shape of Gust: a typed state-machine language that currently compiles to Rust and Go.

From code path to contract

A small workflow can start as a straightforward code path:

func HandleOrder ( ctx context . Context , payload Payload ) error { order , err := parseOrder ( payload .…

Continue reading — create a free account

Join HashtagPLUS to read full articles, follow hashtags, vote, and join the conversation.