Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 15:43
    ismaelhamed opened #4084
  • Dec 04 23:34

    Aaronontheweb on dev

    Made cleanup call thread-safe (… (compare)

  • Dec 04 23:34
    Aaronontheweb closed #4081
  • Dec 04 23:34
    Aaronontheweb closed #4020
  • Dec 04 19:08
    Aaronontheweb commented #4079
  • Dec 04 18:35
    maratoss review_requested #4079
  • Dec 04 18:26
    maratoss synchronize #4079
  • Dec 04 07:42
    jiyeongj edited #4083
  • Dec 04 06:45
    jiyeongj opened #4083
  • Dec 04 06:35
    dependabot-preview[bot] labeled #130
  • Dec 04 06:35
    dependabot-preview[bot] opened #130
  • Dec 04 06:35

    dependabot-preview[bot] on nuget

    Bump System.Data.SqlClient from… (compare)

  • Dec 03 19:10
    Aaronontheweb synchronize #4081
  • Dec 03 19:10

    Aaronontheweb on dev

    Added async API to Akka.TestKit… (compare)

  • Dec 03 19:10
    Aaronontheweb closed #4075
  • Dec 03 19:10
    Aaronontheweb closed #3774
  • Dec 03 19:10
    Aaronontheweb closed #3854
  • Dec 03 19:10
    Aaronontheweb synchronize #4081
  • Dec 03 19:08
    IgorFedchenko commented #4020
  • Dec 03 19:03
    scptre opened #4082
Mark
@q42mark
I see! I also saw that on point 2 :) Btw is point 1. something which might get improved by akka or are you bound by the TPL impl of Microsoft?
Bartosz Sypytkowski
@Horusiath
making async-compatible version of Receive method was made only for convinience of the people, who don't understand (or don't agree with) the advantages of PipeTo method - which is preferred way of dealing with async APIs in Akka. This could be potentially improved, but would require major rewrites of akka internals and will break existing API
Mark
@q42mark
hmm you are right, i'll switch to pipe to :)
Mark
@q42mark
cool 300k requests/s now
:)
Nikita Tsukanov
@kekekeks
I need some simple (eg. bubblesort), short (1-2 pages of code) and easy to comprehand example where Akka shines and 'classic' methods are being ugly
need that for presentation
any ideas?
Nikita Tsukanov
@kekekeks

When it comes to PersistentActor, you can't use more than one per it's persistence Id in akka cluster scope. They have to be singletons

What about synchronizing the states of the views? Storages like EventStore has some mechanims for subscribing to event streams.

Nikita Tsukanov
@kekekeks

something which might get improved by akka or are you bound by the TPL impl of Microsoft?

We are bound by the use of an ambient context backed by ThreadStatic field. This sort of things just won't work well with async/await, that's why a custom TaskScheduler is used. And that TaskScheduler don't execute stuff on threadpool like default does, it messes up with akka's internals to pause actor's mailbox and executes async callbacks on akka's dispatcher. That's why you shouldn't use it for anything other than I/O operations that absolutely have to be completed before processing the next message.

Bartosz Sypytkowski
@Horusiath
@kekekeks Persistent views synchronize themselfs in time interval (by default it's 5 sec) - this option can be turned off, then they are syncing on demand by sending Update message back to them. I know that this is bad, and when akka streams will be ready to be used, we'll change persistent views to use streaming, but until then we have to stick with that.
Nikita Tsukanov
@kekekeks
Is there any way to move this logic from views to persistence provider? So it can take the advantage of the streaming support of the underlying storage platform.
Bartosz Sypytkowski
@Horusiath
and AFAIK EventStore uses Atom protocol for subscription
Nikita Tsukanov
@kekekeks
It has multiple protocols for that
.NET/JVM clients don't use HTTP
HTTP is here for dirty non .NET/JVM peasants.
Anthony Brown
@bruinbrown
@kekekeks an example I've used is call centre applications where an agent can be in this really complicated state machine and Akka makes it easy, give me a minute and I'll make a gist of some code
Bartosz Sypytkowski
@Horusiath
If you use journal based on SyncWriteJournal or AsyncWriteJournal you may use akka.persistence.publish-plugin-commands - if you set this on, then journal will emit all of it's messages on the akka event stream
Anthony Brown
@bruinbrown
@kekekeks this is an example I've used, might be a bit long for a slide but people can grasp it since it's in the context of something they've likely experienced https://gist.github.com/bruinbrown/f8a45074f5bc114d1b69
Nikita Tsukanov
@kekekeks
Oh, thanks
FSM stuff, yay
Chris Martin
@trbngr
@Horusiath I'd really love some more talk about this. How do we do singletons in a cluster?
Bartosz Sypytkowski
@Horusiath
until Akka.Cluster.Tools and Akka.Cluster.Sharding will come out we'll have to do them manually
Roger Johansson
@rogeralsing
@Horusiath should we try to split some of the tasks up? Ill try to get some real coding done on akka.net this week
Bartosz Sypytkowski
@Horusiath
@rogeralsing I'm in the midwork on ShardRegion class porting, I think that after it's complete, we have 1 more event to introduce in Akka.Cluster core (ClusterShuttingDown event I guess)
then all that remain is specs porting and refactoring
I don't know yet how we could split it up (probably split-by-spec has most sense)
Roger Johansson
@rogeralsing
yes. sort in alphabetic order and you start from the top and me at the bottom :) distributed consensus
Bartosz Sypytkowski
@Horusiath
with eventually consistent code base xD
Roger Johansson
@rogeralsing
I'm adding Akka to a legacy code base here :) refactoring Service Layer methods to wrap up arguments into a message and then pass to a consistent hash router for concurrency controlled services
preventing race conditions in services
Aaron Stannard
@Aaronontheweb
I need some simple (eg. bubblesort), short (1-2 pages of code) and easy to comprehand example where Akka shines and 'classic' methods are being ugly
I personally like the "job progress" example
write an actor who uses PipeTo to do some async I/O
i.e. moving copy files from one directory to another or downloading web pages
and write to the console the progress of the job
since the actor doing the work has synchronized internal state it can update the job progress without any locks or other weird stuff
doing that the "old way" is really nasty
bonus points for doing that on a UI thread, which is even nastier
(but trivial with Akka.NET actors)
FYI, JetBrains did us a solid and gave us an OSS license for the build server. So we'll have enough agents / projects to be able to support builds for the Akka.Persistence projects
Natan Vivo
@nvivo
Roman Golenok
@shersh
@nvivo, bearded joke =)
Natan Vivo
@nvivo
Haha
Really didn't see that coming!
we need comics
Aaron Stannard
@Aaronontheweb
@stefansedich my experience with ravendb in production does not look anywhere close to that cartoon
shenanigans I say