The first pre release bits of Akka 2.0 have been released. Unfortunately I haven’t looked all that deep into it yet. However, what I’ve seen really impresses me. It fixes nearly all major issues which Akka 1.2 and feels way more mature in its overall design.
It feels like it can be the back-bone of an application, even when you use it to organizing big chunks of distinct functionality. When you start a project / experiment now start with Akka 2.0! It’s a much better experience than 1.2!
What I Really Like About it
- No god damn Singleton anymore. In Akka 1.2 the configuration and the remoting instance where hard wired Singletons. That made it really annoying to set up elaborate test cases, shut down the system cleanly etc. In Akka 2.0 you can start up as many ‘ActorSystem’-instances as you want, each one with its own configuration, setup etc.
- Supervision is mandatory and easier to configure. In Akka 1.2 you can create actors without any parent and supervision. This basically also meant that errors just ‘disappeared’ and you only noticed stuff the log. In Akka 2.0 a supervision hierarchy is enforced. Error are past up to the appropriate supervisor. If you don’t specify anything the error basically will end up at the top level actor system.
- The path-system. Now actors are basically addressed by file-system like paths. This is handy to get to the right actors. It’s also handy for error-logs: Instead of a cryptic UUID you get a ‘human-readable’ path.
- Streamlined API. Nearly all API’s have been improved and streamlined.
What I Don’t Like About It
- Many, many breaking changes in the API, behavior etc. Of course all these fundamental improvements are not possible without breaking the API. However, porting stuff to new API’s is just no fun work.
- The core jar is larger. Not a big deal for most cases, except for Android. Anyway, I run everything through Proguard anyway. And I believe that the internals got more efficient. =)
Akka-Mobile and Akka 2.0
In general I’m stabilizing my Akka-Mobile code right now and fix some catastrophic bugs. After that I certainly will move everything to 2.0. I’m not planning to keep it on the 1.2/1.3 release. This is the plan:
- Stabilize stuff.
- Move to Akka 2.0
- Write documentation and a tiny demo App
- Keep on improving the thing =)
- Doctor Who Second Half of Series 6 *Spoilers*
- City Hunter