These are chat archives for akkadotnet/akka.net

18th
Aug 2016
Martin
@ng-martin
Aug 18 2016 00:05
Maybe? "Receive <DeadLetter>."... havent trued but im sure there is a type you can check.
Aaron Stannard
@Aaronontheweb
Aug 18 2016 00:06
you want to fake a dead letter?
one thing you can do pretty easily is farm a message out to the "Unhandled" messages queue
the distinction is that an actor was able to receive it but couldn't process it
whereas a dead letter was undeliverable
you can just call Unhandled(object) inside any actor
and it'll appear as an unhandled message envelope - different class than a deadletter but same idea
Corneliu
@corneliutusnea
Aug 18 2016 00:08
perfect, that's what I was looking for
last question (I have a deja-vu on this one): Can you please make Become() methods virtual? I'd like to override them so I can (at times) do some logging
Aaron Stannard
@Aaronontheweb
Aug 18 2016 00:10
in general I think it was a big mistake in the CLR to have all methods be sealed by default, but I understand why they did it
what would you need to log during the Become method? just the fact that you switched behaviors?
Corneliu
@corneliutusnea
Aug 18 2016 00:11
yes, sometimes I debug some area and I have no idea when/why of ir an actor reached a state
it does not work well on short-lived actors but can be a life-saver on longer lived actors with more complicated state machines
Aaron Stannard
@Aaronontheweb
Aug 18 2016 00:13
man, I really should document the FSM actor better
it has an general Transition method handler you can fill in to do this stuff much more expressively
i.e. if you shift from this state to that state, do this
if you shift into any state, do this
the API for it is a bit of a bear though
and should probably be rewritten
as for ReceiveActor
probably wouldn't hurt anything to make that method virtual
would you mind creating an issue for it - just in case the Akka.Persistence guys have something to say about it
Corneliu
@corneliutusnea
Aug 18 2016 00:17
akkadotnet/akka.net#2255
Aaron Stannard
@Aaronontheweb
Aug 18 2016 00:17
ty
Aaron Stannard
@Aaronontheweb
Aug 18 2016 00:47
pretty epic explosion from the API Approval tool when I ran it on Mono
lol
Aaron Stannard
@Aaronontheweb
Aug 18 2016 00:54
I think people under estimate the amount of technical debt that is going to have to be paid off to get .NET into a truly cross-platform state even with .NET Core
I say that as I sitting here correcting the names of directories in .SLN files and on the file system itself, given that Linux is case sensitive and Windows is not - just as an example :p
Corneliu
@corneliutusnea
Aug 18 2016 04:18
does the dead letter logger know the real destination of a message?
I see this log every now and then Message Done from akka://system/user/file/10026/30171/products.products/Send/Save/$a to akka://System/deadLetters was not delivered. 1 dead letters encountered.
and I'd like to know who the real destination of my message was
I know the From but where the heck was I trying to send it
Aaron Stannard
@Aaronontheweb
Aug 18 2016 05:55
we do try to preserve that data
Garrard Kitchen
@garrardkitchen
Aug 18 2016 09:06
Hi @Aaronontheweb, with all your recent work with mono & docker, does this mean there's a release (incl. Mono fixes) on the horizon?
Ralf
@Ralf1108
Aug 18 2016 13:15
hi, would it make sense to include something like message compression for better network throughput? something like http://google.github.io/snappy/
Julien Adam
@julienadam
Aug 18 2016 14:53
Hi guys, so I'm testing a few things, have inserted around 200k events with the SqlServer persistence plugin. Trying to read them back with IEventsByTagQuery works as expected, I get batches of 100 every 3 seconds with the default settings. But ICurrentEventsByTagQuery only reads the first 100 and stops. Is that a bug or expected behavior ? Should I call it with the next offset ?
Aaron Stannard
@Aaronontheweb
Aug 18 2016 15:44
@garrardkitchen yep - did a new release of Helios and NBench thus far this week which has end-to-end build support on Mono
working on doing the same for Akka.NET
so far, Akka.Persistence, Akka.Cluster, et al work great on Mono
the Akka.Remote.TestKit on the other hand, not so much
@julienadam cc @cconstantin @Horusiath
Bartosz Sypytkowski
@Horusiath
Aug 18 2016 17:25
@julienadam this is a configurable limit - by default sql read journal won't allow you to take more than 100 events at one database hit (in case of current-events-by-tag there is only one hit anyway). It's here to limit the risk of choking the application by too big batches of data. You can configure SQL read plugin by setting:
  • akka.persistence.query.journal.sql.max-buffer-size (100 by default) - this is a number of events replayed in a single batch
  • akka.persistence.query.journal.sql.refresh-interval (3s by default) - this is how often the live queries will hit the database.
Julien Adam
@julienadam
Aug 18 2016 18:26
Alright, I understand why the limit exists, I'm just confused as to why IEventsByTagQuery reads all 200k events by batches of 100 every 3 seconds but ICurrentEventsByTagQuery stops after the first batch of 100
Bartosz Sypytkowski
@Horusiath
Aug 18 2016 18:27
if you would expect it to get progressively next batches, it wouldn't be current anymore
btw. thanks to talk with you I've found a pretty serious bug in the implementation
Julien Adam
@julienadam
Aug 18 2016 18:30
happy to help :D
Julien Adam
@julienadam
Aug 18 2016 18:37
I guess my issue is more understanding the docs than anything, it says in the interface docs that "Events that are
stored after the query is completed are not included in the event stream." So I expected to get all the events up to the most recent event in the store at the time the query was finished returning the last batch and then end the stream.
but then you'd have to either get the number of events at the start of the query or risk never ending the stream if events are persisted faster than they get read
Garrard Kitchen
@garrardkitchen
Aug 18 2016 18:41
Thx for confirming @Aaronontheweb. We too have project including docker & mono (F#) but originally POC'd it with NATS, then Kafka then settled on RabbitMQ. Hoping now to revert back to original spec of Akka.Cluster! We're using Docker Cloud and BYON (Azure) with CI/CD from TeamCity (also running in docker container