Podcast: Zeebe and Rust
The latest episode of the Zeebe Nation podcast is out, and it features an interview with Mackenzie Clark, the maintainer of the open source Rust client library for Zeebe - Zeebest.
Extract from 00:17:18:
Mackenzie: Another reason I liked Zeebe a lot is they were using BPMN - which was (an) ISO standard format - for describing workflows, and I think Conductor was not using BPMN - or they had to have some kind of adapter. And so that was another bonus, is it had that legitamacy of ISO.
Josh: Yeah, I think Conductor uses its own YAML format, and then from the YAML it generates a diagram, whereas with Zeebe you can go GUI-first and it generates XML in the background.
Mackenzie: Yeah. That XML, the “living document” strategy for describing things - the flow of things at a higher level - is just so incredibly valuable. One of the things I’ve seen a lot happen in orgs that adopt a kind of microservice strategy is that you get these little teams that go off and build microservices, and we just kinda throw them out there - we throw them on Kub(ernetes) or on VMs or something, and then: how do you debug this giant distributed thing?
You end up kinda building those abstractly - not with any kind of formal, codified way; but you start building those high-level workflow abstractions between these microservices.
And with Zeebe and BPMN, you’re very straight-forward about “what are we actually doing?” There’s no confusion about what you’re making: it is a workflow that is a business process. And those little boxes in your workflow, those little processes correspond to a microservice. Not everybody has to use the same language, and not everybody has to use the same paradigms, but they all feed up to that high-level business process.
And that was where it really clicked for me. I feel like when orgs are adopting microservices, they kinda miss that.
In the episode we cover a number of topics, including:
- [00:01:47] Mackenzie’s journey in programming
- [00:05:48] Working on WebAssembly at Wasmer.io
- [00:09:58] Working on Distributed Systems
- [00:12:23] How Mackenzie stumbled onto Zeebe
- [00:15:19] Comparison with Netflix Conductor
- [00:16:38] Comparison with Apache Airflow
- [00:17:18] Zeebe and BPMN
- [00:19:20] Documentation that never goes out of date
- [00:22:33] The Rust Ecosystem
- [00:27:53] High-level programming in Rust
- [00:34:12] How do you pronounce “Zeebest”?
- [00:35:12] Zeebest Versioning Strategy
- [00:35:43] Upcoming features in Zeebest
- [00:43:14] Developing locally with Zeebe
- [00:43:52] Upcoming features in Zeebe 0.21
- [00:46:20] What motivates you to maintain Zeebest?
- [00:47:33] How to get involved in Zeebe with Rust
A huge thanks to Mackenzie for his work on the Zeebe Rust client, and for coming on the podcast!
Got an idea or request for the podcast? Shoot me an email at firstname.lastname@example.org.