These are chat archives for atomix/atomix

16th
Dec 2015
Richard Pijnenburg
@electrical
Dec 16 2015 11:01 UTC
@kuujo i'm here if you want to chat about the things
testing and building works fine now btw without any issues
Richard Pijnenburg
@electrical
Dec 16 2015 13:14 UTC
@kuujo i have some ideas for what i would like to use atomix, but could use some validation from you to see if my idea's actually work or not before messing around. I'm also a very novice when it comes to java ( coming from the ruby world )
Richard Pijnenburg
@electrical
Dec 16 2015 15:23 UTC
One of them i couldn't find.. I'm looking for something that allows me to reliably transmit data into sort of a queue, and other nodes can read from it. sort of loadbalancing from tasks.
the DistributedMessageBus mentions its not reliable, but the DistributedTopic sends it to everyone that is listening.
Richard Pijnenburg
@electrical
Dec 16 2015 16:29 UTC
I'm also looking into having specific roles for instances.
think the group part should be able to help with that right?
Jonathan Halterman
@jhalterman
Dec 16 2015 19:37 UTC
@electrical You probably want to check out DistributedQueue
It could be improved for loadbalancing work by adding an event listener, which is something @kuujo brought up.
But basically some sort of queue is what you're after since DistributedTopic is pub/sub and delivers copies of each message to each subscriber.
Jordan Halterman
@kuujo
Dec 16 2015 20:32 UTC
@electrical I'm gonna add an extended version of DistributedQueue
to handle distributing work to consumers
Jordan Halterman
@kuujo
Dec 16 2015 20:38 UTC
The current resource types capable of messaging are: DistributedMessageBus which is direct point-to-point, fast but unreliable messaging. DistributedTopic publishes to all consumers as you mentioned. DistributedMembershipGroup now allows reliable messaging between specific members of the group, so you can e.g. send a task to be handled by a specific group member. DistributedQueue is the right data structure to use for work queues, but there's been some discussion about creating a DistributedWorkQueuethat distributes work among consumers. I think there's a GitHub issue for it. But the problem is that the Copycat event framework pipelines events to clients, and that's not great for work. We'll have to add some commands to DistributedWorkQueue to ack a previous item and fetch the next queue item in one request. But this should be easy to do. I'll submit a PR for it probably before you're around again.
but this is great. Resources are really easy to create, we just need these types of use cases to inform them just as the need for member properties informed some recent development of the DistributedMembershipGroup resource