Cross-cutting behaviour around one unit of non-HTTP ingress work.
Sibling of IPipelineBehavior, not a widening of it: all four ingress
handlers are void-returning, so next resolves to void and a behaviour
short-circuits by returning without calling next() — which skips the
wrapped handler. The behaviors arm each ingress plugin declares takes this
interface, directly or through a RegistryFactory resolved at onInit.
handle(ctx: IngressContext,next: () => Promise<void>): void | Promise<void>
Wraps the rest of the chain around one work item.