I’m the developer of a freeware software product called Theron, which I originally began back in 2007. Theron was a C++ library for parallel and distributed computing based on the Actor Model, which extends the object model for concurrency. In the Actor Model, objects are seamlessly and natively concurrent and communicate by exchanging messages.
Writing Theron was a nice exercise in computer science, and also a real journey of discovery. Along the way I learnt quite a bit about some advanced concurrency topics including queuing, low-latency, lock-free, false-sharing, NUMA architectures and the like.
At its height, Theron was quite widely used. The many people who were positive about it liked its simple, intuitive API and its clean, portable code. It was regarded by some people as the best-designed of the few implementations of the Actor Model available in C++. Nevertheless, it eventually was overtaken by competing libraries, partly because I just didn’t have the time or energy to address its many limitations.
While I’m proud of Theron, I’m sad to say that as the years went by I eventually became a bit burnt out on it, and struggled to give it the attention it deserved. Part of the problem was the need to support non-central aspects, and on many different platforms, which felt like a distraction. In retrospect I should probably have open-sourced its development more since other people are often happy to help with that kind of thing. But it always felt like my baby — and ultimately that was its Achilles heel.