One of our architects, Niklas Gustafsson has just posted an actor based auction simulation written in the Asynchronous Agents Library. If you follow the blog trail back, you’ll see that this was implemented originally in scala and that Matthew Podwysocki has implemented this in F#. Niklas also alluded to, but hasn’t shared yet an implementation built in Axum. I find it fascinating to compare and contrast the implementations for similarities and differences.
It’s also worth stressing his concluding remarks here which really highlight why we’re providing an asynchronous message passing and actor based programming model:
As a parting thought, I want to draw your attention to one simple fact: we just wrote an application with 17 agents working together on a problem in parallel, interacting in non-trivial patterns updating state and arriving at a shared understanding of “their world” without a single lock, mutex, or critical section.
The ability to write such complex and concurrent code without dealing with the headaches of managing synchronization primitives is incredibly exciting (at least to me it is), so go check this out.