{{#if isDisplayed }}

{{chain.ServiceName}} Router Use routers to intercept traffic using L7 criteria such as path prefixes or http headers.

{{#each routes as |item|}} {{/each}}

Splitters Splitters are configured to split incoming requests across different services or subsets of a single service.

{{#each (sort-by 'Name' splitters) as |item|}} {{/each}}

Resolvers Resolvers are used to define which instances of a service should satisfy discovery requests.

{{#each (sort-by 'Name' resolvers) as |item|}} {{/each}}
{{#each routes as |item|}} {{#let (dom-position (concat '#' item.ID)) as |src|}} {{#let (dom-position (concat '#' item.NextNode)) as |destRect|}} {{#let (tween-to (hash x=destRect.x y=(add destRect.y (div destRect.height 2)) ) (concat item.ID)) as |dest|}} ' item.NextNode}} d={{ svg-curve (hash x=dest.x y=dest.y ) src=(hash x=(add src.x src.width) y=(add src.y (div src.height 2)) )}} /> {{/let}} {{/let}} {{/let}} {{/each}} {{#each splitters as |splitter|}} {{#let (dom-position (concat '#' splitter.ID)) as |src|}} {{#each splitter.Splits as |item index|}} {{#let (dom-position (concat '#' item.NextNode)) as |destRect|}} {{#let (tween-to (hash x=destRect.x y=(add destRect.y (div destRect.height 2)) ) (concat splitter.ID '-' index)) as |dest|}} ' item.NextNode}} class="split" data-percentage={{or item.Weight 0}} d={{ svg-curve (hash x=dest.x y=dest.y ) src=(hash x=(add src.x src.width) y=(add src.y (div src.height 2)) )}} /> {{/let}} {{/let}} {{/each}} {{/let}} {{/each}} {{#each routes as |item|}} {{#if (starts-with 'resolver:' item.NextNode) }} {{#let (dom-position (concat '#' item.NextNode)) as |dest|}} {{/let}} {{/if}} {{/each}} {{#each splitters as |item|}} {{#each item.Splits as |item|}} {{#let (dom-position (concat '#' item.NextNode)) as |dest|}} {{/let}} {{/each}} {{/each}} {{#each routes as |item|}} {{#if (starts-with 'splitter:' item.NextNode) }} {{#let (dom-position (concat '#' item.NextNode)) as |dest|}} {{/let}} {{/if}} {{/each}}
{{round tooltip decimals=2}}%
{{/if}}