Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between TPL dataflow and Akka.net?

I have worked with TPL dataflow. Really liked it. I had heard the term Akka many times from my java/scala friends so I tried to read about it and found out that akka has a .net port too. Great. When I continued reading about what akka is, I was surprised to see that it sounds exactly like TPL dataflow.

So coming to my question, what is the difference between TPL dataflow and Akka.net ?

When to chose what ?

like image 628
Bilal Fazlani Avatar asked Sep 01 '16 05:09

Bilal Fazlani


2 Answers

I have found a piece of interesting information related to the comparison of Akka.NET and TPL Dataflow, which both are actor-based:

http://blog.i3arnon.com/2016/05/23/tpl-dataflow/

For actor model have you checked out Akka.net? It is a port of the Akka framework from Java\Scala that seems to have built up a pretty strong community. Just curious how TPL Dataflow compares?

I've actually talked about it with one of the owners, Aaron Stannard, at .NET Fringe. He said their initial implementation actually used TPL Dataflow underneath. I think TPL Dataflow is more of a library while AKKA.NET is a framework. TPL Dataflow is for in-process pipelines while AKKA is a distributed system infrastructure though they share the same mindset.

Aaron is the co-founder and CTO of Petabridge, as well as the co-founder of the Akka.NET open-source project.

like image 156
V. S. Avatar answered Nov 07 '22 06:11

V. S.


Akka is an actor based model, and so is TPL Dataflow. As the latter is described as "This dataflow model promotes actor-based programming by providing in-process message passing for coarse-grained dataflow and pipelining tasks." I think there should be an emphasis on in-process, as Akka allows you to create remote actors, which don't necessarily reside inside the same process.

like image 42
Yuval Itzchakov Avatar answered Nov 07 '22 08:11

Yuval Itzchakov