These are chat archives for akkadotnet/akka.net

12th
Feb 2016
Zetanova
@Zetanova
Feb 12 2016 09:36
@Horusiath i saw somewhere, that it is possible to change the mailbox behaivor. Maybe its an idea to put there an priority or out-dated algo. for the snapshotstore actor
@Horusiath For me with some data in the event-stream, how to change to wire ? Or at least use the old serializer for old events.
Arjen Smits
@Danthar
Feb 12 2016 09:52
Im not sure if wire is a drop in replacement for existing code bases with persistent actors. But @rogeralsing would know more.
Zetanova
@Zetanova
Feb 12 2016 10:42
@Danthar of course not, but there is currently easy possibility to switch.
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 13:22
@Zetanova I was repeating all the time, that using default serializer for persistence is asking for troubles ;) But if one already landed there, there event adapters should help - they are actually way to make event versioning working.
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 13:33
Example workflow may be similar to modifying event schema in versioning scenarios - given events serialized using some serializer, we would like to move them on other serializer (possibly also changing their schema is such way, that our current serializer woudn't be able to deserialize new version of event) without breaking backward compatibility. To do so:
  1. You can encapsulate new event schema in new class definition set inside some other namespace. For example, initial events would live inside MyApp.Events.V1 namespace, while the new ones inside MyApp.Events.V2 (just like web api versioning works).
  2. Create marker interface for events from V2 and bind it to new serializer if needed. This way V1 will still be serialized using old serializer.
  3. Create custom event adapter for events in V1. It's responsibility is to take old deserialized events from V1, stored in past in the journal, and then map them to new V2 objects.
Zetanova
@Zetanova
Feb 12 2016 16:03
@Horusiath What it is implying is that the events need to be aware of the serializer what they should using. What again extends the required effort for the developer.
Grzegorz Bernas
@profesor79
Feb 12 2016 16:30
hi guys, as there was a suggestion to ask questions on SO - could you check this one and share your toughs? testKitProblem
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 17:27
@Zetanova they don't, but from maintenance perspective changing serializer is similar to applying mutation to existing event schema. This can be abstracted if needed.
Arjen Smits
@Danthar
Feb 12 2016 17:34
@profesor79 im formulating a response now
Aaron Stannard
@Aaronontheweb
Feb 12 2016 19:10
just recorded this a few minutes ago with Bertrand Le Roy: https://www.youtube.com/watch?v=BEvn9aI6rd0&feature=em-lbcastemail-np
Marc Piechura
@marcpiechura
Feb 12 2016 19:22
One note to paket, afaik you could avoid these giant case blocks by using the framework property within the dependency file ;)
Aaron Stannard
@Aaronontheweb
Feb 12 2016 19:29
yeah, Forkmann mentioned that
point is though, a fork is a fork
the switching cost needs to be covered by the benefit of switching
and unless you apply a large dose of F# fanboi-ism or NuGet hatred to the costs of the decision, Paket doesn't pass muster
of all the things said in that podcast, that will be the shit I hear about
lol
Marc Piechura
@marcpiechura
Feb 12 2016 19:32
Yeah doesn't want to argue about the rest, just thought I say it if you doesn't know
Aaron Stannard
@Aaronontheweb
Feb 12 2016 19:35
no worries @Silv3rcircl3 - I feel you
Arjen Smits
@Danthar
Feb 12 2016 19:36
Good talk in the podcast @Aaronontheweb
didn't knew bleroy did a podcast
Aaron Stannard
@Aaronontheweb
Feb 12 2016 20:12
yeah it's relatively new
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 20:43
@Aaronontheweb you've said that it took you an year to figure out the origin of Props naming - I didn't knew that up to this moment xD
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:02
I think, you've also confused a little the cluster-sharding purpose
simonpetty
@simonpetty
Feb 12 2016 21:15
hey guys. where can i get the latest roadmap update. https://petabridge.com/blog/akkadotnet-2015-roadmap/ is now over 6 months old
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:21
@simonpetty lol, we are somewhere on the 1.4 path according to this xD
I think, that for things that matter in the closer future, you could take a look at #1695
we have some more plans, but many things are fluent and not hardly precised in time
simonpetty
@simonpetty
Feb 12 2016 21:23
ooh good link. ta
helios going bye bye? DI changing? both things we've not used, guess that;s why
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:25
many of these are internal changes and won't be easy to see from the outside
simonpetty
@simonpetty
Feb 12 2016 21:27
ok fair enough. we're particularly interested in the back-pressure semantics of streams. is there a link to see progress on that area?
i'm new to open source contribution, but we have some scala developers who may be interested!..
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:31
@simonpetty in terms of the Akka.Streams, we have the core code ported (compatible with early JVM v2.0), we're working on porting tests for it... and making it actually working, not only compiling :)
simonpetty
@simonpetty
Feb 12 2016 21:32
haha. compiling isn't enough?! sounds fun man
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:32
even making it compilable was a solid amount of effort
streams code is very scala-specific
simonpetty
@simonpetty
Feb 12 2016 21:34
ja. i imagine the dotnet world is missing a fair bit of the fundamentals :(
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:34
if you know people willing to contribute, you can introduce us ;P
simonpetty
@simonpetty
Feb 12 2016 21:36
will defo raise it!
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:37
yes, for example, funny part about JVM generics - given generic definition SomeClass[T, U], you can actually patern match object of this class against SomeClass[_, _] which translates directly to concrete type of SomeClass[IDontGiveAFuck, IDontGiveAFuck] - unfortunatelly in .NET there is not type IDontGiveAFuck defined, and you cannot make such comparison without using reflection (you cannot match against generic type without specifying concrete types in generic parameters)
simonpetty
@simonpetty
Feb 12 2016 21:42
haha. nice example. kinda similar to how .net treats void ?!
Aaron Stannard
@Aaronontheweb
Feb 12 2016 21:45
@Horusiath yeah, it's kind of amazing how that just went "woosh" over our heads
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 21:48
@simonpetty I belive, you cannot use void in any similar context, it's just side effect of lack of reified generics on the JVM
looking from time perspective, it actually helped JVM a lot
JVM native type system it's so primitive, that you can use this as a founding ground. In the end you have dynamic type systems, Scala's higher kinds or even Ceylon's reified generics (in far more superior version when compared to the CLR)
voltcode
@voltcode
Feb 12 2016 22:24
@Horusiath won't covariance with generics work in this case?
ie. using Object type as the IDontGiveAFuck
Jordan S. Jones
@jordansjones
Feb 12 2016 22:25
Can anyone provide any insight into what the most common reason(s) I would be getting this error: "Failed to startup Cluster. You can try to increase 'akka.actor.creation-timeout'."
Bartosz Sypytkowski
@Horusiath
Feb 12 2016 22:33
@voltcode not in this case unfortunatelly :/
however we already overcome that using different tricks :P
voltcode
@voltcode
Feb 12 2016 22:48
interesting
mind pointing me to where can I find those tricks ? :)