Regarding the distributed/sharded cases...

I prefer a syntax that allows a list of containers/connections on a single route. The issue with that is that adding and removing containers (a common use case) is not well supported.

Here's a possible solution:

When creating a route, provide an initial list of containers/connections to be used. This list cannot be directly updated via management.

Add the following methods on the "route" entity to manage the container list:

ADD_CONTAINER
Expands the capacity by adding a container to the list.

REMOVE_CONTAINER_CLEAN
Cleanly removes a container from the list by first quiescing its traffic then removing it. Quiescing involves stopping the forwarding of new messages to the node-on-container and/or waiting for it to be drained. This ensures that no messages are lost in the transition.

REMOVE_CONTAINER_HARD
Remove the container without quiescing.


-Ted


On 02/24/2016 04:06 PM, Ted Ross wrote:
<SNIP>
Distributed (sharded) queue waypoint:

     route {
         address: my_queue
         type: waypoint
         container: <broker-1-container-id>
     }
     route {
         address: my_queue
         type: waypoint
         container: <broker-2-container-id>
     }


Distributed (sharded) topic waypoint:

     route {
         address: my_topic
         type: waypoint
         inTreatment: multicast
         outTreatment: linkBalanced
         container: <broker-1-container-id>
     }
     route {
         address: my_topic
         type: waypoint
         inTreatment: multicast
         outTreatment: linkBalanced
         container: <broker-2-container-id>
     }
<SNIP>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to