by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Mina Galić (deprecated: Igor Galić)
    @igalic
    why do i have followers on github? what is this? what's going on? how do i get rid of them?
    Daniel Olano
    @olanod
    Hi all! anyone using the ricker-cqrs? it hasn't been updated in a while and wanted to give it a try, any special consideration I should have in terms of stability or API changes? if I end up using it a lot and depending on it I'd be glad to help make it better, faster, stronger :)
    Adriano Santos
    @sleipnir
    @igalic I think most do. When you have a project or participate in a project, people follow you on GitHub, I have several and I follow several. It is part of the platform.
    Mina Galić (deprecated: Igor Galić)
    @igalic
    how come travis isn't running on this PR? riker-rs/riker#108
    Steve Biedermann
    @hardliner66
    The latest change to the ci configuration probably broke something. I can look into it tomorrow

    @sleipnir I know that one is a framework and the other is more of a small helper.

    I just don’t understand why we need a npm dependency which installs a python dependency which then performs a task, when we instead could just use a rust dependency which does the same thing.

    Steve Biedermann
    @hardliner66
    Does everything you do in your hooks also work on windows?
    1 reply
    Adriano Santos
    @sleipnir
    @hardliner66 was that question for me?
    Steve Biedermann
    @hardliner66
    Yeah
    Adriano Santos
    @sleipnir
    @hardliner66 sorry but I don't remember doing anything with Riker. I just follow this forum to learn about the progress of this project.
    Steve Biedermann
    @hardliner66
    Oh, i just thought you know more about the hooks because you posted a link to a pre-commit config
    Mina Galić (deprecated: Igor Galić)
    @igalic
    @hardliner66 i'm pretty, and sure, that was @olexiyb.
    Adriano Santos
    @sleipnir
    :(
    Steve Biedermann
    @hardliner66
    He made the PR but it might be good to have another pair of eyes looking at the problem
    @igalic you could create a GitHub issue if you like. So we can track what the problem was and how it was resolved
    11 replies
    Steve Biedermann
    @hardliner66
    @igalic nice, thanks
    Steve Biedermann
    @hardliner66
    @olexiyb It's good to know that it works on windows. I'm still not completely sold on the idea tho. Is it really necessary to have a dependency on npm and/or python?
    olexiyb
    @olexiyb
    I think documentation https://github.com/riker-rs/website should be part of the core riker, when API changed we need to make sure documentation is in sync.
    Take a look how I have reorgonized https://github.com/actors-rs/actors.rs. mkdocs and frontpage will require npm.
    And I have added use of https://github.com/budziq/rust-skeptic to make sure examples in documentation in good shape.
    npm is not really needed but you can take benefit of "scripts" in package.json, that is supported by many IDE, like CLion or vs code.
    image.png
    Steve Biedermann
    @hardliner66
    That sounds reasonable. In this case it's fine for me, if we also want to adopt the other stuff for riker.
    olexiyb
    @olexiyb
    I feel that we moving too slow with pull requests, for example this one is sitting 7 days
    riker-rs/riker#108
    I think all clippy warnings should be fixed, I have fixed myself most of them during several days on actors.rs
    olexiyb
    @olexiyb
    @leenozara please invite someone else to have merge rights https://github.com/orgs/riker-rs/people
    Steve Biedermann
    @hardliner66
    @olexiyb As riker is quite new and doesn't have a defined set of core contributers, it is expected to move a bit slower. And even if I'd like to see it pick up pace, I certainly don't want rushed decisions.
    Once core contributers are chosen, the project will surely move a bit faster :)
    olexiyb
    @olexiyb
    2 years maturity, awesome documentation, 13 contributors should be enough to move to next step :-)
    I see @hardliner66 is #2 https://github.com/riker-rs/riker/graphs/contributors
    Steve Biedermann
    @hardliner66
    I completely agree that it's time for the next step. But I don't agree with rushing decisions.
    olexiyb
    @olexiyb
    hmm, fix the travis build and fix clippy warning should not be qualified as rushing decisions
    Steve Biedermann
    @hardliner66

    No, but giving people merge rights without proper thought is.

    @leenozara please invite someone else to have merge rights https://github.com/orgs/riker-rs/people

    olexiyb
    @olexiyb

    No, but giving people merge rights without proper thought is.

    @leenozara please invite someone else to have merge rights https://github.com/orgs/riker-rs/people

    Here is example of very good proposal I have contributed a little, 69 people asked and it still sits during 5 years. Eclipse foundation is very big community. My point that is always good to invite people to contibute, the lack of interested people in improvements will result into such proposals sitting during years!
    https://bugs.eclipse.org/bugs/show_bug.cgi?id=477475

    Steve Biedermann
    @hardliner66
    As I said, I completely agree. But just giving a random person merge rights doesn't help. Some decisions need time.
    Lee Smith
    @leenozara
    Hi @olexiyb, thanks for your input as usual. Your pushing is quite appreciated and you are correct that reviewing and merging of pul requests is too slow. This is being addressed with work being done to plan an optimal way forward. I know it can be frustrating, but I want to do this right. You can follow the discussion here riker-rs/riker#102. Look foward to you adding your ideas too. Please just bear with me during this phase.
    Lee Smith
    @leenozara
    Builds are positive again. Re pre-commit, let’s review what we are trying to achieve with this in terms of problem, solution and cost. I get that we want standardization across code but the introduction of dependencies and with no development/contribution guide currently we need to review and discuss.
    olexiyb
    @olexiyb
    here is the fix to enforce pre-commit during commit
    riker-rs/riker#112
    Lee Smith
    @leenozara

    riker has been updated to version 0.4.1. This includes optimizing by removal of unnecessary boxing and cloning, replacing mutex locks with better concurrency alternatives, and an improvement to log guard handling.

    Special thanks to @hardliner66 , @xacrimon and @mrjoe7.

    In addition to this new version there have been important updates to code, project structure and build process, as well as code review and discussion. Thanks to @igalic, @olexiyb, @aav and others for all the input.

    [dependencies]
    riker = "0.4.1"
    Mina Galić (deprecated: Igor Galić)
    @igalic
    \o/
    @leenozara can i suggest creating a tag corresponding to the release? such things are invaluable when debugging regressions
    Daniel Olano
    @olanod
    Hi! anyone knows what's the deal with persistence? :sweat_smile: riker-rs/riker#118
    Matt Joiner
    @anacrolix
    How do I run an ActorSystem until there are no messages or activity left?
    My main just returns immediately, unless I sleep.
    Tom Burdick
    @bfrog
    can you mark functions in an actor as async, doing .await? in them? Is that something that's being looked at?
    I see you can execute futures, it would be nice to be able to take advantage of the async/await sugaring
    Steve Biedermann
    @hardliner66

    @anacrolix Currently there is no built-in way to wait for completion until riker-rs/riker#58 is implemented.

    In the meantime there are some workarounds you can use:
    1) Use an external synchronization primitive to signal completion (e.g.: a channel, a semaphore, etc...)
    2) Wait until the user root has no child actors left

    Use number 1 if you have some actors performing some tasks and an actor which collects the results, and know at start how many results you will get.
    Because in this case the actor which collects the results can send a message on a channel once it has all the results.

    Otherwise you could make sure that every actor stops once it has finished it's work and wait for the child count of the root actor to reach 0.
    But for this to work you have to use Strategy::Stop as supervision strategy and all direct children of the user root must live until your program has finished all it's work.

    The problem with both is, that they are very brittle. Especially number 2 can break in strange ways if you aren't extremely carefull.

    Steve Biedermann
    @hardliner66
    @bfrog Currently sending a message to an actor in riker itself is fire-and-forget. But you can use the Ask Pattern if you want to .await an response.
    Matt Joiner
    @anacrolix

    @hardliner66 how would I do this one:

    Otherwise you could make sure that every actor stops once it has finished it's work and wait for the child count of the root actor to reach 0.
    But for this to work you have to use Strategy::Stop as supervision strategy and all direct children of the user root must live until your program has finished all it's work.

    That's the behaviour I want.

    Matt Joiner
    @anacrolix
    Adriaan Prinsloo
    @AdriaanPrinsloo
    Hi, I'm new to Riker, and i's trying to use it to implement a ZMQ service, one that both received Request/Response commands and one the can subscribe to ZMQ pub/sub channels. The intention is to handle both of these scenarios with Riker actor implementations. I've had a look around, but I can't find an example of such a service. At the moment i'm just looping on the socket.recv and ask() ing specific actor references for a response, and for pub/sub I'm endlessly passing a Listen message, that blocks and listens the subscription channel in the actor implementation. Both of these approaches feel a bit clunky. Does anybody know of an example implementation of something like that I can look at?
    Lee Smith
    @leenozara

    @AdriaanPrinsloo

    There's two main approaches. The first I would recommend would be to handle your ZMQ IO separately from Riker. You could use Tokio for this or any other IO optimized implementation. When you receive your Request 0mq message you can offload the processing of that to Riker by sending to the respective actor. Your ZMQ queue can continue to handle other Requests. The actor handling the message can choose to send a Response. Typically you could either send a ZMQ reference along with your original message, or you could include such a reference when you create/start the actor. You end up with two "reams", ZMQ and Riker, and no blocking would be necessary.

    The other approach would be to handle the ZMQ orchestration and IO inside of Riker. To do this in a non-blocking manner you'd typically use an actor that contains the ZMQ socket and instead of blocking, schedule a message (Check, or Tick, for example) 50ms at the end of recv to be send to myself. Every Tick you check if the ZMQ socket has data and if so get the message. A simple implementation is easy, but if you want to handle a lot of IO then there are patterns you can use to optimize this. The only time you want that Tick message scheduled is when there is no more ZQM messages.

    Ideally, you don't ever want to block. Also note that Ask is a future and will require you to block (await) to get the result to the current thread - therefore it's better suited to futures composition where you have a chain of futures working to completion.

    I'd love to hear more as you progress. ZMQ and nmq are excellent.
    Adriaan Prinsloo
    @AdriaanPrinsloo
    @leenozara thanks so much for your guidance! I'll post an implementation if i manage to do something elegant.
    Mina Galić (deprecated: Igor Galić)
    @igalic
    @leenozara can i have some of that wisdom :arrow_heading_up: in this issue too riker-rs/riker#103 ?