On 02/25/2016 03:27 PM, Gordon Sim wrote:
On 24/02/16 21:06, Ted Ross wrote:
Syntax:
route: {
type: direct | source | sink | waypoint
address: (address or prefix)
treatment: multicast | closest | balanced | linkBalanced
connector: (label of a connection to/from a remote container)
container: (ID of a connected remote container)
inTreatment: (override treatment for inbound traffic)
outTreatment: (override treatment for outbound traffic)
inAddress: (override address for inbound traffic)
outAddress: (override address for outbound traffic)
}
Some notes:
- I don't care for the negative connotations of "detour" and prefer
"waypoint" for describing a thing you must go through on your way to
the final destination.
- I've replaced "fanout" + "bias" with "treatment" to describe how the
router handles the forwarding of messages. There is precedent for
the use of this term (hat tip to Andy Smith) in Cisco's router
documentation.
- Link-routing is just another kind of treatment, like multicast or
closest-consumer. This removes the need for the "mixed" route as
described by Gordon. It also removes any distinction between a
waypoint and a link-route-destination as a link-route-destination
simply becomes a waypoint with linkBalanced treatment.
- I'm avoiding Alan's distinction between direct and indirect routes by
noting that "direct" is the only direct option whereas the other
types are indirect.
- The notion of "direction" is replaced by the "source" and "sink"
route types.
I like this.
The term 'treatment' feels a bit alien to me. If type defaults to direct
and is optional, then treatment and address will be the two most
commonly configured fields and it would be nice for these to be as
intuitive as possible. What would you think of renaming 'treatment' as
'type', and renaming 'type' as 'path' (or 'pathType')? (And maybe
entry/exit instead of in/out?
I could live with this. The only problem is that "type" is reserved by
the AMQP management spec to describe the entity-type. We would need to
qualify it in some way (this problem exists in my proposal as well).
I think 'treatment' is pretty descriptive in that it describes how the
router treats the links and deliveries it gets from the endpoints.
I.e.
route: {
path: direct | source | sink | waypoint
address: (address or prefix)
type: multicast | closest | balanced | linkBalanced
connector: (label of a connection to/from a remote container)
container: (ID of a connected remote container)
entryType: (override treatment for inbound traffic)
exitType: (override treatment for outbound traffic)
entryAddress: (override address for inbound traffic)
exitAddress: (override address for outbound traffic)
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]