These are chat archives for akkadotnet/akka.net

18th
Sep 2017
Ronny Carlansson
@lessismore1
Sep 18 2017 00:15
@Horusiath will not use it - was for testing purposes only :) Good info on hyperion!
Tried ImmutableSortedDictionary as part of actor state. Default serializer and hyperion gave same error :( Test over now, but thanks ... :)
The reason was that I noticed use of it in Akka.DistributedData
Ronny Carlansson
@lessismore1
Sep 18 2017 06:25
@Horusiath old post from Aaron led me to believe that hyperion was the right choice for immutables AND persistence:
Akka.NET Near-Term Roadmap
no. 3 was new to me!
Robert Stiff
@uatec
Sep 18 2017 08:25
i'm running this every minute:
this.DeleteSnapshots(new SnapshotSelectionCriteria(SnapshotSequenceNr - 10)); this.DeleteMessages(base.LastSequenceNr - 100);
but i appear to have lost my state after restarting an agent
to my understanding, that should have meant that i had the last 10 (maybe 9) states to restore from
i guess i should check my logs
what i see is that I am receiving messages which do not correspond to the state I am expecting to heave
have
yeah, my state has reset to 0, then i have received many journaled messages that only really make sense if my state more recent
jalchr
@jalchr
Sep 18 2017 08:33
Hi all,
I'm still thinking about this "at-most-once delivery" strategy which is the default in Akka.net. I'm wondering how can this 'default' help us build 'reliable' systems.
I appreciate if someone can share where is this policy / strategy helpful ?!
I can't find any single system that can work on none-guaranteed delivery.
I believe that "at-least-once" should be the 'default' in Akka.net. And this default should NOT require persistence. The acknowledgement should be built in.
And by-the-way, I have never found a "Solid" exactly-once delivery sample that works in a cluster.
And yes, I'm aware of those https://petabridge.com/blog/akkadotnet-at-least-once-message-delivery/ posts, which are 2 years old.
Just my thoughts ... appreciate your replies.
Ismael Hamed
@ismaelhamed
Sep 18 2017 10:51
After this disassociated exception, the node gets marked as unreachable by the cluster and won't come back (it's being a hour now). I thought this type of exceptions were transient, and that eventually the node should recover:
Akka.Remote.EndpointDisassociatedException: Disassociated
   at Akka.Remote.EndpointWriter.PublishAndThrow(Exception reason, LogLevel level, Boolean needToThrow)
   at Akka.Actor.ReceiveActor.ExecutePartialMessageHandler(Object message, PartialAction`1 partialAction)
   at Akka.Actor.UntypedActor.Receive(Object message)
   at Akka.Actor.ActorBase.AroundReceive(Receive receive, Object message)
   at Akka.Actor.ActorCell.ReceiveMessage(Object message)
   at Akka.Actor.ActorCell.AutoReceiveMessage(Envelope envelope)
   at Akka.Actor.ActorCell.Invoke(Envelope envelope)
Robert Stiff
@uatec
Sep 18 2017 11:44
only up to a point
i think there are some limits
it's like a 3 strikes and your out, kinda thing
i just had a look through the code, it's pretty complicated how something gets marked as Quarantined
but one it is, then that node needs restarting
Robert Stiff
@uatec
Sep 18 2017 11:50
something to do with the message buffer becoming out of sync
Ismael Hamed
@ismaelhamed
Sep 18 2017 12:33
Yep, restarting the node fixes it. Which is why it seems obvious that retrying would fix it eventually (though, as you said, I get it's more complicated than that)
Michel van den Berg
@promontis
Sep 18 2017 12:34
@Horusiath when using cluster sharding and remembering entities, should I be handling ShardRegion.StartEntity?
Ismael Hamed
@ismaelhamed
Sep 18 2017 12:35
The thing is this behavior is gonna be troublesome in production, since now this requires manual intervention
Michel van den Berg
@promontis
Sep 18 2017 12:35
If so, this is not really obvious from the Akka.NET docs or the samples
your sample really helped me
maybe we can put there a comment that other types of objects should be handled there as well, if needed
Aaron Stannard
@Aaronontheweb
Sep 18 2017 13:53
@ismaelhamed I'm worried this might be a serialization error
those errors are NOT transient right now
although in some cases they probably should be
I believe that "at-least-once" should be the 'default' in Akka.net.
Aaron Stannard
@Aaronontheweb
Sep 18 2017 13:58
cc @jalchr the tradeoff there would be an order of magnitude decrease in the throughput of Akka.NET across the board and a 1-2 order of magnitude increase in the amount of memory consumption message sending uses
which is, simply put, a bad trade off
Ismael Hamed
@ismaelhamed
Sep 18 2017 13:59
@Aaronontheweb by serialization, you mean persistence or remoting?
Aaron Stannard
@Aaronontheweb
Sep 18 2017 13:59
at least once delivery is not hard
@ismaelhamed remoting
but it is expensive
and it's much easier on the software developer to "opt in" to it where they need it
than it is to "opt out" of it where you don't
Microsoft designs their tools the latter way - use all of the CPU and memory-expensive techniques to babyproof your application from day one
but then you have to learn how all of that magic works and figure out precisely where and how you need to undo it when you inevitably run into a scaling issue
Akka does not. We give you the most bare bones defaults with the fewest moving parts and the best out of the box performance
it's up to you as the application architect to decide where trading off some of that performance in exchange for something like durability, message delivery guarantees, etc is more valuable
Ismael Hamed
@ismaelhamed
Sep 18 2017 14:01
@Aaronontheweb I could share with you the logs, but I don't see any serialization exception
jalchr
@jalchr
Sep 18 2017 14:01
@Aaronontheweb I see what you mean. But Akka.net is meant to be used for building "Reliable Distributed" processing systems. This means I have to do all the plumping in order to get a reliable system.
And we lack the presence of "Good" cluster oriented samples about getting guaranteed delivery.
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:02
yeah I know, that's the problem @ismaelhamed
Ismael Hamed
@ismaelhamed
Sep 18 2017 14:02
ah ok, :)
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:02
that detail is not exposed in the error messages right now
I think it's been that way since the DotNetty changes
But Akka.net is meant to be used for building "Reliable Distributed" processing systems.
what does "reliable" mean for everybody?
does that mean never losing a message ever?
or does it mean losing some messages in exchange for being able to guarantee that the system can process the other 99.999% of messages within a fixed window of time?
jalchr
@jalchr
Sep 18 2017 14:03
I believe in so ... yes. Performance is important, but message delivery is MORE
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:03
my point is that "reliable" looks different for everybody
Ismael Hamed
@ismaelhamed
Sep 18 2017 14:03
@Aaronontheweb thanks for the tip, we'll keep looking into it, see if we can find something
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:03
@ismaelhamed way I've found it
attach debugger
disable just my code
and wait
jalchr
@jalchr
Sep 18 2017 14:04
Can you mention some use-cases where performance is more important than reliability ?
Ismael Hamed
@ismaelhamed
Sep 18 2017 14:04
@Aaronontheweb sounds fun!
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:04
@jalchr my original production use case for Akka.NET was high throughput marketing automation
being able to guarantee that I can deliver an ad or an offer within ~1s was way more important than being able to guarantee that I captured 100% of marketing events
even if it meant not displaying a very small percentage of possible offers I could serve each day
and I had to process something like 500mb of event data per second at peak hours
jalchr
@jalchr
Sep 18 2017 14:06
Contrast that with an Ordering system, where you cann't live with losing a single order
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:06
well, Akka.NET has to support both use cases
jalchr
@jalchr
Sep 18 2017 14:06
Exactly
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:06
the way we choose to do that is giving you tools you can build on top of the existing infrastructure
Joshua Garnett
@joshgarnett
Sep 18 2017 14:06
So you need some type of persistence for at least once delivery to survive crashes/etc...
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:07
@ismaelhamed yeah that sucks and it's a bug I need to fix
was personally burned by that one on a project where I've been using Hyperion
Joshua Garnett
@joshgarnett
Sep 18 2017 14:07
We’ve written an exactly once system in our code for transactional flows
That gets even more heavy weight as you have to handle dupes, etc..
jalchr
@jalchr
Sep 18 2017 14:08
I think we need a "model" of building a good "Gauranted Delivery" cluster based system. Because I believe its non-trivial work.
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:08
well you're right about that
that when it comes to stuff like applying consistency rules to your state correctly and handling network partitions
it gets more complicated
jalchr
@jalchr
Sep 18 2017 14:10
So where to start? with a sample code-base ? or with a document about the "best" approach ?
@joshgarnett Are you using that in a mission-critical system ?
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:11
I think I'll end up doing an end-to-end deployment guide here later this year along with some docs about getting things up and running in a production environment
Joshua Garnett
@joshgarnett
Sep 18 2017 14:11
It’s a game, not mission critical
jalchr
@jalchr
Sep 18 2017 14:11
Can you share how is the performance ?
Joshua Garnett
@joshgarnett
Sep 18 2017 14:11
I haven’t done a deep analysis of the performance yet
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:11
@jalchr one of the projects I'm working on now is a critical (affects safety) system built on top of Akka.NET
and message delivery and state management is a big part of the exercise there
jalchr
@jalchr
Sep 18 2017 14:12
It would be great if we can a github sample of such setup
Joshua Garnett
@joshgarnett
Sep 18 2017 14:12
Here is the protobuf scheme I landed on

// This message is sent over the wire to other actors
message ReliableMessage {
  ReliableMessagingHeader header = 1;
  ReliableMessagingContent contents = 2;
}

message ReliableMessagingHeader {
  int32 sequence_number = 1;  // source to target sequence number
  int64 created_at = 2;

  ActorType source = 3;
  ActorType target = 4;
}

message ActorType {
  oneof id {
    uint64 some_actor_id = 1;
    uint64 other_actor_id = 2;
  }
}

message ReliableMessagingContent {
  oneof message_type {
    SomeMessage some_message = 1; 
  }
}

// message sent over the wire from the target to the source actor
message ReliableMessageAck {
  ReliableMessagingHeader header = 1;
}

// Used to track in/out state on an actor
// Typically added to an actor's protobuf state
message ReliableMessageActorState {
  repeated ReliableMessage outgoing = 1;

  // track incoming messages that have been acked by actor
  repeated ReliableMessagingHeader incoming_acked = 2;

  // Track outgoing messages that that have been acked by target actor.
  // This is used to prevent resending acked messages during recovery.
  repeated ReliableMessagingHeader outgoing_acked = 3;  
}
jalchr
@jalchr
Sep 18 2017 14:12
I think this is a very good candidate for contribution
I would gladly contribute to such project
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:16
@uatec you are right
ugh... let me see what's up with that
loooooooooooooool
apparently they changed Azure pricing
so I need to upgrade us from a shared plan to a basic one
that's the only thing I can think of other than a Chrome update defaulting to HTTPS :p
Robert Stiff
@uatec
Sep 18 2017 14:19
oh, and gave you cruddy SSL certs for free?
Aaron Stannard
@Aaronontheweb
Sep 18 2017 14:20
oh wait a minute, no nevermind this is my fault
we never set up https period
I think we've been sending people to http://getakka.net/
since it's all statically hosted
@uatec did you get a link to the https:// version from somewhere?
Robert Stiff
@uatec
Sep 18 2017 14:26
i forget, let me check my history
Robert Stiff
@uatec
Sep 18 2017 14:31
here we go
first result
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 14:35
@promontis The only message that is unique to cluster sharding and exposed to end users is Passivate (for graceful sharded actor shutdown). Others are used either to query a sharding cluster state or are not meant to be handled by programmers at all
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 14:43
@jalchr I'm working building a reliable casual broadcast layer (persistence-backed) for akka, but it's slow work - I don't have much time thanks to my job. Regarding reliable delivery - it's just like @Aaronontheweb said, it means different thing for every person. You've said that persistence is not necessary, which is false for any distributed system - you cannot guarantee that message is delivered in environment where every participant can go down at any time. There are multiple cases of everyday scenarios where most of existing technologies would fail to deliver (with or without persistence) - those are simply solved on human/legal level.
Aaron Stannard
@Aaronontheweb
Sep 18 2017 15:19
@uatec ok, I'm going to move our DNS over to cloudflare
and solve the problem that way
Robert Stiff
@uatec
Sep 18 2017 15:19
i was going to recommend that actually
Aaron Stannard
@Aaronontheweb
Sep 18 2017 15:19
since it looks like the MSFT route requires me to buy a $200 / month plan for getting DNS that is better than SNI-based stuff
we use cloudflare on petabridge.com and I've been really quite happy with it
Robert Stiff
@uatec
Sep 18 2017 15:20
well great
Aaron Stannard
@Aaronontheweb
Sep 18 2017 15:20
it'll take 24-48 hours for the DNS name servers to migrate over
Robert Stiff
@uatec
Sep 18 2017 15:20
yeah, i use it for everything, never expose ANYTHING except through cloudflare
Aaron Stannard
@Aaronontheweb
Sep 18 2017 15:21
probably a good idea
Robert Stiff
@uatec
Sep 18 2017 15:24
after i released a successful game and got DDOS'd, and my ISP said to me "you've got 24 hours to get your data, now get out"
Joshua Garnett
@joshgarnett
Sep 18 2017 15:36
lol, ISPs are so fun like that
Aaron Stannard
@Aaronontheweb
Sep 18 2017 15:41
good lord
lol
I can feel the acidity of my stomach increase after reading that
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:00
actually, the hottest kids in town uses persistence all the way nowadays... (aka. kafka)
Joshua Garnett
@joshgarnett
Sep 18 2017 16:02
I debated on going down the path of kafka
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:05
@uatec ouch... that bad, huh
Aaron Stannard
@Aaronontheweb
Sep 18 2017 16:06
I'm pretty eager to avoid things like Kafka usually
Joshua Garnett
@joshgarnett
Sep 18 2017 16:06
My company has zero interest in hosting just about anything
So typically go with some type of managed solution
Aaron Stannard
@Aaronontheweb
Sep 18 2017 16:06
but my perspective is from that of super early stage companies with no traffic at day 1
if I was brought in to rearchitect a major financial services platform I'd probably be more keen on using stuff like that since the company would... well... hopefully have other people who can help administer and run that stuff
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:08
well, I can't really see any useful case for using kafka for mid-low use cases
Aaron Stannard
@Aaronontheweb
Sep 18 2017 16:08
if budget is no object, there's a lot of traffic already, and I'm authorized to do JVM + CLR side-by-side
zbynek001
@zbynek001
Sep 18 2017 16:08
@promontis, @Horusiath Since the sharding was updated to v2.5.2, you need to handle ShardRegion.StartEntity inside id extractor
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:09
yeah, deploying things like microservice and kafka would also mean deploying a small ops army
mid-low companies with limited budget, stay clear
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 16:12
@zbynek001 good to know - it's pretty fucking dumb, but well...
who knows the ways of Lightbend
Aaron Stannard
@Aaronontheweb
Sep 18 2017 16:13
@Horusiath @zbynek001 oh man, that's a big change
what was the reasoning behind that?
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 16:15
@Aaronontheweb it's used only together with remember-entities feature
and probably for exactly that purpose - to start an entity upon restart
however the way how it works is dumb - StartEntity has entityId but not shardId... which is shooting yourself in a foot
zbynek001
@zbynek001
Sep 18 2017 16:17
there is a link to the original issue in the PR akkadotnet/akka.net#2767
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 16:17
as you either need to carry shardId as part of entityId or use some other shard extraction strategy (i.e. hash based shard calculation)
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:31
@joshgarnett I thought zynga used to have the most sophisticated analytics server on the planet?
Joshua Garnett
@joshgarnett
Sep 18 2017 16:31
We have a pretty impressive team for analytics. For game studios though, we tend to favor managed services.
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:32
aws and such?
Joshua Garnett
@joshgarnett
Sep 18 2017 16:32
Yep
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:33
i'd go that route myself, tending a server farm is not for the weak hearted...
Joshua Garnett
@joshgarnett
Sep 18 2017 16:33
Yeah, going to have to standup some servers for Akka, but will be using Aurora for our persistence backend
Weston
@ronnyek
Sep 18 2017 16:43
@Horusiath so you think its feasible to take something like noflow ui and have it dynamically build a network I can load into streams api?
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 16:45
@ronnyek it depends on your users and use cases (and a data delivery guarantees and volumes of data) :P
Weston
@ronnyek
Sep 18 2017 16:46
what does data delivery guarantees and volumes of data have to do with it
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 16:46
isn't WWF essentially something you're building
Weston
@ronnyek
Sep 18 2017 16:46
ehhh
I think flow based programming is a bit different than what wwf did/does
and honestly having done in a distributed like manner would be awesome
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 16:47
right now akka.streams is not distributed out-of-the-box
Weston
@ronnyek
Sep 18 2017 16:47
a graph has to run solely in one node?
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 16:49
you can construct graph of graphs over multiple nodes but this is highly risky action - as messages may be lost, bad things will happen (most common will be simple deadlock)
you'd need some middleware (i.e. akka.streams.kafka @alexvaluyskiy is implementing)) in between nodes to guarantee message delivery - on akka JVM you can use GearPumpMaterializer, that will automatically construct a fully distributed graph on demand, but we're not quite there yet
Weston
@ronnyek
Sep 18 2017 16:54
ehhhhhhh
not terribly interested in running kafka
infact the further I can stay away from anything java
the better =)
Joshua Garnett
@joshgarnett
Sep 18 2017 16:55
lol
Weston
@ronnyek
Sep 18 2017 16:55
no offense to anyone who is a fan, just not my personal preference at all
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 16:58
hey now, java is fun! not
(as he looks at the eclipse IDE on the other monitor)
Weston
@ronnyek
Sep 18 2017 16:59
I mean I run jetbrains products
but those fellows make magic happen with the jvm
Joshua Garnett
@joshgarnett
Sep 18 2017 17:01
G1GC helped a lot, but when you throw scala in the mix with all the extra garbage it creates, it can be a rough ride sometimes
Weston
@ronnyek
Sep 18 2017 17:02
even though it didnt start off at an oracle product, jvm seems like an appropriate fit for them... just unnecessary bloat for what it does
it CAN perform, but lot of things seem to perform on par using less resources
so anyway
is the idea of implementing kafka middleware, basically that you have a mq sitting in the mix?
kafka is for queues and "data streams"
is it not?
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 17:07
yes, basically something that you can push messages to on one end and pick up from on another one in reliable fashion
it's not backpressure in sense of reactive streams, but as said, the infrastructure for distributed graphs is not ready
Weston
@ronnyek
Sep 18 2017 17:08
so that could be rabbit
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 17:08
yes
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 17:08
any MQ would work, someone just need to contribute thats all
Weston
@ronnyek
Sep 18 2017 17:09
I'd be curious to know how people model the whole dead letter crap with that stuff
@Horusiath what is the middleware
is there an interface I'd have to implement to make that work
Marc Piechura
@marcpiechura
Sep 18 2017 17:10
Or a shared folder 😜
Weston
@ronnyek
Sep 18 2017 17:10
HAHA nice
I work in industrial automation
I see real world stuff like that more than I care to expect
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 17:11
well, we could probably port that ftp module... :P
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 17:11
@Silv3rcircl3 don't laugh, I'm working in bank. You'd be supprised how many SOA services (some of them 30 years old) are communicating via "file interfaces"
Weston
@ronnyek
Sep 18 2017 17:12
@Horusiath for that middleware that someone is building with kafka
if I was to build a version for rabbit, is there a specific interface or something I can look at for reference?
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 17:12
@ronnyek look into akka.net contrib, the alpakka bithub
github*
Weston
@ronnyek
Sep 18 2017 17:12
oh I guess it doesnt matter
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 17:13
@ronnyek https://github.com/ScalaConsultants/reactive-rabbit - I've already started implementing it in .NET. Can put the code on github later today
Joshua Garnett
@joshgarnett
Sep 18 2017 17:14
RabbitMQ + AWS == Lessons in sadness, I’ve had so many network partitions with RabbitMQ it isn’t funny
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 17:14
@Horusiath thats an awfully catchy project name XD
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 17:14
sad part of RabbitMQ on .NET side is that it's blocking - no async/await there yet, and maintainers don't have resources to convert it into async api
Weston
@ronnyek
Sep 18 2017 17:14
@Horusiath ehh no rush
I'm interested in doing this stuff, but worried it'd take more than just that rabbit implementation
I'm having a hard time understanding what is capable in akka.net today and what isnt
I mean it clearly works and people are using it
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 17:18
@ronnyek I understand your concerns. Unfortunately Akka.NET contributors are not working on it full-time :/
Weston
@ronnyek
Sep 18 2017 17:18
oh I am not tryign to bash
its probably that I am trying to compare / contrast with stuff like service fabric
service fabric has stuff like "virtual actors"
stateful/stateless actors
communications is somewhat abstracted
I am not sure if there is anything stream backpressure etc
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 17:27
@joshgarnett was it a problem with how aws is set up?
Joshua Garnett
@joshgarnett
Sep 18 2017 17:27
I was running a node in each AZ and RabbitMQ wasn’t very tolerant to transient network issues
It seems to really want to be in the same rack, which defeats the purpose of some HA setups
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 17:30
hmm... I don't have that much experience with rabbit, i did dabble a bit with ZMQ
Joshua Garnett
@joshgarnett
Sep 18 2017 17:30
When I turned down the safety gaurantees of RabbitMQ HA setup, it played nicer with it
Boban
@bobanco
Sep 18 2017 18:24
@Horusiath what's the difference between reactive_rabbit and the official amqp connector?
i have ported the AMQP connector but only part which is missing si porting the tests..they are not many
but don't have enough time to dedicate to finish the work
i have tried the connector with the RestartSink and Source and it played nice in losing the connection to rabbit and recreating new source/sink with a backoff strategy
only problem which i noticed was when u r wrapping the amqp source with the restart source
Alex Valuyskiy
@alexvaluyskiy
Sep 18 2017 18:27
@bobanco you could try to push it to github
Someone could help
Boban
@bobanco
Sep 18 2017 18:28
the messages which were in flight were not consumed, i will need to take a close look on it and test with jvm as well
@alexvaluyskiy the initial code is actually here https://github.com/bobanco/Akka.Stream.Alpakka.Amqp
i will commi my latest changes
which were getting in sync with the latest changes from jvm
also as a side project am playing with creating microservice framework on a top of akka.net and asp.net core
i started with porting lagom
but i escaped the port :) cuz lagom relay hardly on play
and i think its much better to only use their idea
Boban
@bobanco
Sep 18 2017 18:33
and create more .net frendly framework
what i was thinking is to reuse all parts of akka.net like alpakka connectors/persistence
Ismael Hamed
@ismaelhamed
Sep 18 2017 18:37
i started with porting lagom
:open_mouth:
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 18:39
@bobanco reactive-rabbit has no dependency on akka - it's just a reactive streams implementation for rabbitmq.
I has a lot of sense on the JVM actually - akka is only one of the many existing reactive streams libraries, if I'm right even Spring implements this standard by now
Boban
@bobanco
Sep 18 2017 18:41
@Horusiath oh got it, thanks for the info
@ismaelhamed lagom is jsut a thin layer on a top of akka and play :smile:
Bartosz Sypytkowski
@Horusiath
Sep 18 2017 18:42
at this point play is a thin layer on top of akka as well :P
Gregorius Soedharmo
@Arkatufus
Sep 18 2017 18:42
Ismael Hamed
@ismaelhamed
Sep 18 2017 18:48
@bobanco you and I have different meanings for "thin", sir :)
Boban
@bobanco
Sep 18 2017 18:57
@ismaelhamed haha looks like man
Boban
@bobanco
Sep 18 2017 19:24
@Horusiath there is support in rabbit .net client for async consumers https://github.com/rabbitmq/rabbitmq-dotnet-client/blob/master/ChangeLog.md#async-consumers
Boban
@bobanco
Sep 18 2017 21:26
@Horusiath alpakka.amqp port is in sync with the jvm, only porting the tests has left, anyone who is willing to contribute can port the tests :smile:
Marc Piechura
@marcpiechura
Sep 18 2017 21:42
@bobanco may want to send a PR and create an issue for the tests? My azure plugins doesn't have tests either so ... ;)
Boban
@bobanco
Sep 18 2017 21:44
@Silv3rcircl3 yes, will do it
Boban
@bobanco
Sep 18 2017 22:29
@Silv3rcircl3 , here is the PR AkkaNetContrib/Alpakka#17
this will solve AkkaNetContrib/Alpakka#9
Marc Piechura
@marcpiechura
Sep 18 2017 22:32
Great thx !