Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
  • 20:47
    IgorFedchenko commented #4085
  • 20:46
    IgorFedchenko commented #4085
  • 15:09
    IgorFedchenko commented #4085
  • 11:24
    Kenji-Tanaka commented #3887
  • 10:45
    nagytech edited #4086
  • 10:45
    nagytech synchronize #4086
  • 10:43
    nagytech opened #4086
  • 09:00
    Horusiath commented #4077
  • 06:31
    Aaronontheweb commented #4085
  • 06:28
    Aaronontheweb commented #4085
  • 06:24
    Aaronontheweb commented #4085
  • Dec 07 11:49
    IgorFedchenko commented #4085
  • Dec 07 10:31
    IgorFedchenko commented #4085
  • Dec 07 08:36
    IgorFedchenko commented #4085
  • Dec 06 20:57
    IgorFedchenko commented #4085
  • Dec 06 20:32
    IgorFedchenko commented #4085
  • Dec 06 20:01
    IgorFedchenko commented #4085
  • Dec 06 19:55
    IgorFedchenko commented #4085
  • Dec 06 16:22
    Aaronontheweb labeled #3997
  • Dec 06 16:22
    Aaronontheweb closed #3997
Arjen Smits
@Danthar
@skotzko interesting email
Bartosz Sypytkowski
@Horusiath

To limit the number of concurrent connections to something like Postgres

@kekekeks This doesn't sound like a job for a dispatcher, rather the matter of design constrained pool of actors managing the connections

Nikita Tsukanov
@kekekeks
Do you use database from a single actor type?
Natan Vivo
@nvivo
@Horusiath I'm looking for things to write in the dispatcher documentation. like "reasons you might want to do this". if you have more recommendations, I'd be glad to hear
Nikita Tsukanov
@kekekeks
I. e. one can have a ton of different actors that act like a repository
Natan Vivo
@nvivo
@kekekeks you can restrict concurrent connections to a database with routers, I have been doing with actors only
Bartosz Sypytkowski
@Horusiath
@kekekeks you may wrap database access layer in actor
Nikita Tsukanov
@kekekeks
And lose access to ORM?
nope
Natan Vivo
@nvivo
you don't need to lose ORM
Nikita Tsukanov
@kekekeks
You lost me here
You can't use one pool since actors are actually of different types
i. e. UsersRepository, MessageRepository and so on
and even have pools for groups of actors of one type
Natan Vivo
@nvivo
it all depends on how you see the problem
Nikita Tsukanov
@kekekeks
In this case you'll have a lot of actors that do exclusively DB operations but are limited by DB connection pool
Arjen Smits
@Danthar
Besides leveraging the supervision capabilities, and perhaps error handling. Why would you want your data access, which is already abstracted into repositories. abstracted behind an Actor?
Natan Vivo
@nvivo
if you want to restrict all queries to a database, you could create an actor that routes or executes only 5 queries a time for example (an idea)
if you want to abstract per repository, then you can use all your ORM inside that actor
Nikita Tsukanov
@kekekeks
in this case I'll have to do everything in one god-class
Arjen Smits
@Danthar
@nvivo true. but if you are using an ORM, access to that level, for that kind of manipulation is abstracted away
Natan Vivo
@nvivo
the point is that there is not a single way to do it. akka don't require you to stop using an orm
depends on the orm right?
Arjen Smits
@Danthar
true
Joshua Benjamin
@annymsMthd
One of the main things to note here is the Actor Model != OOP. There are fundamental differences in the way things are modeled and architected.
Nikita Tsukanov
@kekekeks
I mean, different types of actors can share a single resource
jcwrequests
@jcwrequests
Get rid of the ORM and use Event Sourcing :)
Natan Vivo
@nvivo
=)
jcwrequests
@jcwrequests
Or use a micro ORM
Nikita Tsukanov
@kekekeks
Well, show me how to do full text search with event sourcing effectively
Bartosz Sypytkowski
@Horusiath
there are plenty ways to do it. I've got idea, when db connections are distributed using token pattern - there is an actor which holds pool of tokens/db connections, and passes them on demand to other actors inside the same actor system, actors which needs a db access, ask provider wth token request and release the token after their job is done
however it's only an idea, I didn't test it yet
Natan Vivo
@nvivo
@kekekeks what @annymsMthd said is completely true. the thing to realize is: Akka has 5 years of battle tested implementation working for lots of people in most varied environments. It's more about understanding how you can do it than anything else. the model itself doesn't restrict much, but you need to change your application architecture to embrace it.
Nikita Tsukanov
@kekekeks
I don't see why it can't be done with a dispatcher that just limits the number of threads
Arjen Smits
@Danthar
@nvivo Thats very true
Natan Vivo
@nvivo
it's not that it can't be done. it's more that it shouldn't =)
dispatchers control how threads are used. you can run 10 queries using a single thread if you're using async
Arjen Smits
@Danthar
@kekekeks The dispatcher is not meant for solving those kind of problems
Natan Vivo
@nvivo
you shouldn't require messing with threads only to control connections
(that's exactly why I'm trying to come up with some reasons why someone should touch dispatchers - we need some good examples on why one would care about that)
Arjen Smits
@Danthar
Honestly @nvivo I think that if the default dispatcher is properly optimized. The list of scenario's of wanting to implement your own is very small.
Natan Vivo
@nvivo
I agree
Arjen Smits
@Danthar
And thats besides the fact that implementing your own dispatcher if fraught with all kinds of subtleties
Natan Vivo
@nvivo
just so you understand, I'm rewriting the docs to be more "human readable"
Arjen Smits
@Danthar
Yes i know :) been lurking here for days, Just heaven't been very active due to.. stuff
Natan Vivo
@nvivo
currently, if you go to the Dispatchers docs, you can read the entire thing and there is nothing there saying what it actually does and why you should change that
Bartosz Sypytkowski
@Horusiath
I've already proposes an experiment for custom dispatcher built on top of Hopac to see, if there is a possible performance gain
Arjen Smits
@Danthar
iv'e been eyeing the DI examples doc as well. That could use some love.
Hopac. yeah that should be interesting
Natan Vivo
@nvivo
the official akka doc is more like "integers: we implemented using a custom machine architecture where bits are randomly swapped bla bla bla " - when they could just said "they are numbers"