Pavlov for the Web

One of the aims of pavlov is to give developers and LLMs a model-check-driven development workflow that is superior to both traditional TDD and REPL-driven development. When using pavlov, you should be able to use a model to guarantee that your application does nothing you do not want it to do, and everything you do want it to do. This is straightforward to do with an application that runs on a single system. Model checking comes for free with the behavioral programming paradigm. ...

2026-04-17 · 4 min · 698 words · Thomas Cothran

Bthreads: A Simple and Easy Paradigm for Clojure

Asynchronous programs are hard to reason about. But is this intrinsic to asynchrony? Or might we be using the wrong paradigms? Behavioral programming is a programming paradigm that aims to make asynchronous, event-driven systems both simple and easy by using a system centered on behavioral threads (bthreads). In my previous article, I introduced the idea of behavioral programming in Clojure. In this article, we dive deeper. I hope to convince you that, compared to the alternatives: ...

2024-10-30 · 9 min · 1723 words · Thomas Cothran