Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • Oct 21 15:57
    Aaronontheweb closed #3877
  • Oct 21 15:57
    Aaronontheweb commented #3877
  • Oct 21 15:56

    Aaronontheweb on dev

    Persistence TestKit documentati… (compare)

  • Oct 21 15:56
    Aaronontheweb closed #3889
  • Oct 21 07:27
    dependabot-preview[bot] labeled #3999
  • Oct 21 07:27

    dependabot-preview[bot] on nuget

    Bump FluentAssertions from 4.14… (compare)

  • Oct 21 07:27
    dependabot-preview[bot] opened #3999
  • Oct 20 17:25
    valdisz synchronize #3889
  • Oct 20 17:17
    valdisz synchronize #3889
  • Oct 20 15:44
    valdisz synchronize #3889
  • Oct 20 09:22
    ismaelhamed commented #3863
  • Oct 19 23:39
    valdisz synchronize #3889
  • Oct 19 23:08
    edvinasz commented #2947
  • Oct 19 13:36
    Aaronontheweb commented #3973
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3995
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump BenchmarkDotNet from 0.10.… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] edited #3995
  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3993
  • Oct 19 13:34

    dependabot-preview[bot] on nuget

    Bump Google.Protobuf from 3.9.1… (compare)

  • Oct 19 13:34
    dependabot-preview[bot] synchronize #3991
Weston
@ronnyek
what is dotnetty?
Bartosz Sypytkowski
@Horusiath
DotNetty is MS port of JVM Netty socket server framework
I guess it will replace Helios (our own socket server framework) soon
Weston
@ronnyek
and thats going to honestly be better?
I dont know, I know akka.net is a port from java
just seems like aside from api's and stuff, I'd be hesitant to port stuff over
Bartosz Sypytkowski
@Horusiath
transport layer is plugable, and DotNetty is already used internally by some of the Azure team services. It has small community and people willing to work on it. On the other side, Helios is hard to keep up, as @Aaronontheweb is the only person who know this stuff... and he is also DotNetty contributor
Weston
@ronnyek
nice
Chris Constantin
@cconstantin
Hi all, great job on porting akka to .net. I can’t find this info anywhere: what are the plans wrt porting akka streams and persistent query? Waiting on the API and implementation to stabilize in the Java version?
Bartosz Sypytkowski
@Horusiath

@cconstantin My guess/wish would be:

  1. We add DotNetty transport layer for Akka.Remote and get Akka.Cluster out of beta - IMO it's stable enough for some time already.
  2. We have semi-advanced Akka.Cluster.Tools - working proof of concept is ready, we need to cover the test specs and fix remaining bugs.
  3. Then probably Akka.Cluster.Sharding as it has been ported already, but still requires some work.
  4. Then my guess, Akka.Streams will be the next - I've ported around 14,5KLOC of it already, but it's nowhere close to finish.

We want to have out cluster history nice and complete.

But for all of this, we have a lot of work and not much time to spare ;)
Chris Constantin
@cconstantin
so a rough ETA would be? I’m not making any promises yet, but I might be able to contribute to Akka.Streams
Bartosz Sypytkowski
@Horusiath
for akka streams? next year I guess ;)
Chris Constantin
@cconstantin
haha :) I figured as much
Bartosz Sypytkowski
@Horusiath
It's one of the biggest plugins in whole akka project and I guess we need some strategy to share work over it, as it's too big for one person in reasonable amount of time.
Chris Constantin
@cconstantin
for now a poor man’s solution can be put together with persistent views, I think
Bartosz Sypytkowski
@Horusiath
I've created some poor man's querying capabilities for sql-based journals in PR #1306
but it's not reactive streaming by any means
I wanted to get some similar querying capabilities for other plugins and get some unique advantages for each of the persistent journal depending of the backend they use i.e. for Postgres events serialized to jsonb data type or tailable cursors for MongoDB
Chris Constantin
@cconstantin
Alright, I’ll take a look
Chris Constantin
@cconstantin
if I’m only interested to persist current state, is a PersistentActor still the best way to go (with calls to DeleteMessages to remove history)?
Bartosz Sypytkowski
@Horusiath
@cconstantin I don't think so, Akka.Persistence is build for eventsourcing as primary state persistence technique, as it's the most reliable in distributed, error-prone environments. If you can store only current state, it's trivial to do this by yourself, but there are some things to keep in mind i.e. how will you prevent state loss in case of outage.
Daniel Ferreira Monteiro Alves
@danfma
hello guys!!
Do someone know if is possible to use some specific protocol, or a way to implement one, in a matter that makes the Java version compatible with the .NET one?
Bartosz Sypytkowski
@Horusiath
@danfma right now it's not possible as transport layer itself is not compatible between Java and .NET version. This hopefully will change in the future.
Daniel Ferreira Monteiro Alves
@danfma
But can I implement a new transport layer over the two implementations? Something json-based.
Sorry, I just want to know if I implement a transport layer for .net and the compatible one for Java, will the two clients be possible to communicate?
I did not dive into the source code of the akka yet.
Bartosz Sypytkowski
@Horusiath
when I said transport layer I didn't mean json - it's part of serialization mechanism not transport itself ;) @Aaronontheweb will know details, but AFAIK part of the problem is that JVM uses big endian network byte order, while .NET uses little endian
Bartosz Sypytkowski
@Horusiath
ok guys, serious question - when we're joining two actor paths some/base/path/ and /some/child/path using /, what the result should be? Because right now it is some/base/path//some/child/path (notice double / in the middle), which is not a valid path.
Roger Johansson
@rogeralsing
Ill check what Scala does
Bartosz Sypytkowski
@Horusiath
guys, I think I've managed to get a happy path for Akka.Cluster.Sharding working :D
Roger Johansson
@rogeralsing
woho!
Chris Martin
@trbngr
speaking of cluster sharding...our new project is projected to launch in a couple months. Is there any chance CS will be ready in that timeframe? I see that Cluster Singleton is out there now, but I'd rather use sharding.
Chris Martin
@trbngr
Man...I'm like the thread killer around these parts. ;)
Bartosz Sypytkowski
@Horusiath
@trbngr I'd say, it's probable to have -pre of Akka.Cluster.Tools and Akka.Cluster.Sharding around new year, but it will be probably quite bleeding edge - from the other side, the sooner people will start using them, the sooner we'll find and fix the most critical bugs.
Marc Piechura
@marcpiechura
Hi, I have a design question. I have a service with an akka system which imports some data into a azure table storage and now my plans are to build a client which receives push notifications when the service has imported a new item. Furthermore, the service should keep the last x imported items and send them to every "new" client. So my question is, is that a use case where clustering would work? I thought maybe every client would be a node and if a new item was imported, the service sends a message to every other node and on "node joins" send the last x items to only this node.
TonyLo1
@TonyLo1
Hi, is there any way of using Akka.Monitoring with F# actors?
Bartosz Sypytkowski
@Horusiath
@Silv3rcircl3 I don't know how big your cluster will grow as you will cover it over all clients, but each new client introduces a little overhead on the cluster itself. But your case seems, that it's solvable using direct datastore access or (if you really need to use akka) as combination of Akka.Persistence for storing events with persistent views or direct journal reads
@TonyLo1 you can basically join monitoring events on start/stop of an actor. Optionally if you use Akkling, you can have direct access to all actor's lifecycle events and invoke monitoring counters from there.
Marc Piechura
@marcpiechura
@Horusiath maybe around 10 clients ;-) furthermore the service as well as the clients are in the same network. The main reason is, that I don't want to handle network or other connectivity issues by myself. Of course the client's could poll the service or a database, but I want to try a more "reactive" way ;)
Bartosz Sypytkowski
@Horusiath
@Silv3rcircl3 you will need to pull that data anyway ;) you may i.e.. just build facade actor working as publisher, that will be used for storing all the events and buffering last of them X inside itself. Other parties are simply represented by other actors, that subscribe to it and receive buffered messages once subscribed. The problem itself is not associated with clustering ;)
Marc Piechura
@marcpiechura
You mean something like, client sends subscribe message to pub sub actor from the service, receives last 10 buffered items and further imported items?
Bartosz Sypytkowski
@Horusiath
yep, basically
Marc Piechura
@marcpiechura
But then I need some sort of connectivity management if the client loses the connection to the service and therefore misses some updates
ping pong mybe ;)
Bartosz Sypytkowski
@Horusiath
depending on how are you connecting the client, long running connections like akka.remote/cluster or websockets always expose some way to discover disconnected events
Marc Piechura
@marcpiechura
that's exactly what I need, thanks a lot!
Bartosz Sypytkowski
@Horusiath
yes, this is very atomic and works for the pair of two actors, one watching for another