These are chat archives for akkadotnet/akka.net

23rd
Jan 2015
jcwrequests
@jcwrequests
Jan 23 2015 01:49
@Horusiath dzień dobry. If you need advice from the experts on Event Sourcing there are two great locations to find it. One is the http://neventstore.org/ which has a google group and the gold standard http://geteventstore.com/ which also has a google group. Greg Young owns the eventstore and contributes to both user groups would be the premier expert on the subject. Also I have great contact of someone that I have worked with in the open source realm who would also be a great resource who runs the podcast http://beingtheworst.com among other things. I use a version of his event store which he has written them to run atop of Azure, SQL or the file system in .net and recently at Happy Pancake https://github.com/happypancake/events which they wrote in Go I believe. If you need an introduction let me know and I would be happy to introduce you. Currently I am doing some R&D on Cassandra as an Event Store for a project I currently have in production so I may also be of assistance. Finally here is a link to Greg Young's skilscast which is full of great information https://skillsmatter.com/members/gregyoung#skillscasts.
Bartosz Sypytkowski
@Horusiath
Jan 23 2015 05:23
Dzień dobry @jcwrequests ;) Thank you for the skillsmatter link, it should be very helpful. I'll probably ask Greg for some help sooner or later. Since I'm creating a port, not my own implementation, it takes most of the architectural problems off my shoulders. What I see on the horizon is quite domain-specific - i need to integrate current ported version of Akka.Persistence architecture with Akka.FSharp plugin. At the present moment they are totally different in design and hardly compatible. For this I also would consult someone with a strong F# knowledge who has already used it for eventsourcing, to share his/her experiences. Maybe Lev Gorodinski.
jaime febres
@emiaj
Jan 23 2015 16:20

Say, I want to create a shopping cart service for an eCommerce based on actors...
I want the cart information to be held on memory inside a ShoppingCartActor...
I want to create ShoppingCartActor instances per user (keyed by their username) and on demand (create one if does not exist, otherwise use the previous one)...
This actor will receive messages to Add/Update/Remove items from the Shopping Cart (scoped by user of course)...
I want to use remoting so the ShoppingCart system is hosted in a different server to decouple it physically from the front ends...

So, I was wondering if you have any pointers for me to follow in order to figure this out by myself.

There will be other requirements along the line, I just need the basic setup up and running...
Later I will plug in a promotions engine to apply discounts and gifts offerings depending of the content of the user eCart plus a rich protocol to inform the other end the outcome of each one of those operations, but that's not important at the moment.
Bartosz Sypytkowski
@Horusiath
Jan 23 2015 17:29
In basic setup scenario I'd probably want to deploy ShoppingCartActor using a ConsistentHashRouter, so that every request from specific user should be always handled by his/her shopping cart actor. Documentation I've linked actually describes your use case.
Roger Johansson
@rogeralsing
Jan 23 2015 17:40
@emiaj in a real world scenario, I would not go for an actor model for that use case. a shopping cart rarely interacts with other elements, it should be persistent, there are probably not more than one concurrent user of the shopping cart... actors are good for handling concurrency and complex interactions and are by default not persistent (though akka.persistence solves that) . a standard KVP store of some sort is a better fit.. leaving that aside, if it is just for a learning experience, to see how everything fits togheter, then +1 on what @Horusiath said
jaime febres
@emiaj
Jan 23 2015 18:00
@Horusiath @rogeralsing thank you both for your feedback.
Yes, it is mostly a learning experience, but I must reckon that later on I was going to propose a similar design for a client of mine who wants to make his eCommerce more resilient and fault-tolerant, and the ShoppingCart block seemed the easier to port to akkadotnet.
Either way, thanks for your honest response, sometimes a "do it differently" is way better than using the wrong tool for the job.
I just read the docs, indeed, ConsistentHash seems to be the way to go, thanks @Horusiath ;)
Andrew Skotzko
@skotzko
Jan 23 2015 20:05
@rogeralsing @Aaronontheweb and I just realized that most everyone has Akka.NET org as private on their github. Think we should have most people go public w/ Akka.NET org on Github? So more people see the project via people's profiles. >> https://github.com/orgs/akkadotnet/people
Roger Johansson
@rogeralsing
Jan 23 2015 20:07
Didnt even know that there is a setting for that
Andrew Skotzko
@skotzko
Jan 23 2015 20:07
Yeah I just realized it today too
I had assumed it was public by default. Alas no.
Andrew Skotzko
@skotzko
Jan 23 2015 20:24
@jcwrequests recommend you chat w/ @Aaronontheweb about your Cassandra research. He has heavy production experience w/ Cassandra and is the maintainer of FluentCassandra
Bartosz Sypytkowski
@Horusiath
Jan 23 2015 20:36
I've just got one simple though - can we use byte buffer pooling for serialization to possibly gain some speed and lower a GC pressure?
Roger Johansson
@rogeralsing
Jan 23 2015 21:54
The bottleneck is not there atm,we have profiled using different serializers and message sizes, pretty much the same remote throughput no matter what config.
So there is something in the remoting layer that limits throughput atm.. That is not size based that is
Roger Johansson
@rogeralsing
Jan 23 2015 22:05
had some students writing a paper on akka.net a while back... we managed to push about 20k messages per sec between two machines.. didnt matter if messages was 10 bytes or 1k