Many of today’s interactive server applications are implemented using actor-oriented programming frameworks. Such applications treat actors as a distributed in-memory object-oriented database. However, actor programming frameworks offer few if any database system features, leaving application developers to fend for themselves. It is challenging to add such features because the design space is different than traditional database systems. The system must be scalable to a large number of servers, it must work well with a variety of cloud storage services, and it must integrate smoothly with the actor programming model. In this project, we develop solutions to these challenges, applied to the Orleans actor programming framework.
We have developed solutions for transactions and geo-distribution, which are available in the latest Orleans release. We have published a component that does secondary indexing, which we are working on hardening for later inclusion in the Orleans master branch.