Simple project to learn Scala and Akka
I’m trying to learn Scala and Akka, so may as well also study MongoDB. This is my attempt to make a toy mongodb-esque db server using the Scala and Akka.
Here are some milestones to get me going:
- Read mongodb protocol (bson + mongo wire protocol). I have a decent start on this already. It uses the Akka Iteratees (so benefits from netty/nio async underneath). Still need to update to Akka 2.1 features described as “Encoding and decoding of binary data” http://doc.akka.io/docs/akka/2.1.0-RC2/scala/io.html
- Fake out a real mongodb client, at least through initial handshake of the protocol. This will require reading Mongo level messages (and drive any more bson implementation I need) and I’ll need some actors. I’ll have to write some mongo replies as well.
- Convince a mongo client I actually inserted a document (really, I’ll just throw it on the floor or put it in a Map)
- Profit! (i.e., I will have learned a whole bunch of Scala and Akka and some MongoDB too).