The following is a short interview with Succinctly author Zoran Maksimovic, whose new book, Akka.NET Succinctly, was published Monday, March 26. You can download the book here.
What should people know about Akka.NET? Why is it important?
Akka.NET is a framework that simplifies building scalable, highly concurrent, high-throughput, distributed, and fault-tolerant event-driven applications by using Microsoft.NET. Akka.NET itself is a port of the original Akka framework written in Scala/JVM.
The previous sentence contains a few important concepts and anyone who is experienced enough in building such systems knows that this is far from being trivial. Akka.NET, however, enables building such systems more easily.
When did you first become interested in this subject?
On a daily basis, I am faced with building concurrent and distributed applications. Searching for new ways to solve common problems is at the heart of what every developer does.
When evaluating solutions for a particular problem I was facing on a project, I came to know about Akka.NET, especially through the videos published by the Akka.NET main contributors. I loved the way the technology was presented, especially the fact that these guys, in order to solve their own project problems, have built an application framework now used by thousands of people worldwide. This was very inspiring, and obviously I wanted to give it a try.
One thing brings another, and slowly but surely, I came to love the way Akka.NET solves certain issues of concurrency with ease.
By writing this e-book, did you learn anything new yourself?
Absolutely. I think it is impossible to write a book without getting something from it. From one side, I learned more about the internals of the framework as I was forced to deep dive into it, but on the other side, I believe I’ve seen a bigger picture where this application framework could fit. While Akka.NET is not a silver bullet for every kind of a problem, it certainly is an amazing tool that every developer should know about.
How will this subject change over the next few years?
It’s always hard to tell what the future brings. The actor model (as a paradigm) still holds after all these years, and most probably will for the foreseeable future.
Microsoft.NET is a great platform for building applications, especially now with the existence of .NET Core, which enables developing applications supporting multiple platforms, which was a big handicap of .NET in the past.
One thing is certain—the need for reactive applications will grow in the future and hence the need for frameworks such as Akka.NET!
Do you see Akka.NET as part of a larger trend in software development?
As mentioned earlier, Akka.NET offers a way of building reactive systems within Microsoft.NET. We are surrounded by applications that need to be reactive. Just think about the Internet of Things (IoT) or other event-driven applications such as Twitter, LinkedIn, Facebook, etc. All of them require all of these qualities mentioned earlier.
Nowadays, another popular topic is building microservices. Using Akka.NET in order to create microservices is a very convenient way of implementing these kinds of applications.
What other books or resources on this topic do you recommend?
At this point in time, I believe the most authoritative and complete information can be found on the official project’s website, http://getakka.net for the .NET version or https://akka.io/docs for the JVM version.
There are a lot of examples and concepts explained. I remember sometimes I had to read over and over again about certain topics and every time having the “aha!” moment as something new would become clear.