Closed Aaronontheweb closed 10 years ago
Is it open source? Is it cross-platform, tested on mono etc., with compatible license? If not, don't use it, since you aim to be cross-platform and canonical for .NET Akka.
Don't use it for performance reasons.
http://ayende.com/blog/164739/immutable-collections-performance
@dsyme this is the collection I was considering http://www.nuget.org/packages/Microsoft.Bcl.Immutable/1.0.30
IIRC, it doesn't currently support Mono but I believe the team recently committed to adding full Mono support.
@jkonecki looks like the Twitterverse has arrived at the same conclusion: https://twitter.com/AkkaDotNET/status/448604466422763521
For the purposes of the work I'm doing on issue #1, I'm going to forgo the use of any immutable collections for the time being.
We may determine at a later date that we need them in order to make the usual ordered messaging / immutability / thread-safe blah blah guarantees but for the time being I don't think it will be an issue until after we hit milestone 1
Performance was one of the reasons I didn't use them to begin with in Akka.NET. Also do note, that inside actors, we can use any old non threadsafe collection.
Closing this issue.
There's a number of places inside Akka where immutable and copy-on-write collections are used - the internal queues used for buffering network messages being one of them.
The BCL has an excellent set of Immutable collection implementations (System.Collections.Immutable) that I used in my own initial C# implementation of Akka - I'm cautious against bloating up Akka.NET with too many external dependencies, but I think there's merit to utilizing this one in particular.
Any objections to including it, at least in Akka.Remote? Other thoughts?