Skip to main content
A lane is one admission scope at one destination. Actions in the same lane share occupancy, learned limits, pacing, delivery history, and temporary operator advice. Lane identity is resolved after rules select the destination and assign tags. Two action variants can share a lane when they reach the same destination with the same control tags. The same control tags at two destinations produce two lanes. How Arklow works follows an end-user lane through admission, shared capacity, and scaling.

Identity modes

Tag order has no effect on identity. An action with no tags uses the destination’s untagged lane.

Performance

Each lane can drive approximately 24 messages per second, or 1440 messages per minute. To increase throughput, use more lanes. The recommended pattern is to partition by Users/Customers/Teams, which ever your platform uses to represent distinctive entities.

Partition behavior

Missing values

Actions with a missing or empty partition value use the destination’s shared untagged lane regardless of the other tags. Choose a partition tag that is present on every action that requires isolation.

Other tags

Tags outside the partition remain attached to the action and available to rules, metrics, and observability. The partition value alone determines the lane and its limits.

Tag sources

Tags can come from:
  • The tags field sent to HTTP ingress.
  • tag.<key> query parameters on HTTP ingress.
  • Source attributes configured to become tags.
  • An Assign Tags rule.

Limits and advice

Each lane carries the running and unsettled occupancy described in Admission control. Admission applies the lane’s current limits and any tighter quota from its capacity pool. Lane advice sets temporary running or unsettled caps. Advice can provide a lifetime in seconds or an explicit expiry; a lifetime defaults to 300 seconds. A cap holds for the shorter of its lifetime and five minutes from the write. A running cap of 0 pauses admission for the full lifetime, until the advice expires or is deleted. Advice with the exact partition tag applies to one lane. Advice submitted without tags can apply across the destination’s partitioned lanes.
Lane Advice should be used rarely, if at all. It serves only for direct influence over Admission Control, and can cause harmful outcomes if used improperly.

Cardinality

A destination can hold at most 50,000 lanes. Ingress will accept the work, but raise the error TAG_CARDINALITY_EXCEEDED. New tags won’t be recorded, and will default to the default destination. Request identifiers, timestamps, and other unbounded values should stay outside lane identity. A partition tag can keep descriptive tags on the action while bounding lane identity to the selected values. Arklow can always raise this limit on request, and exists to prevent unbounded lane generation.

Admission control

Waiting, running and unsettled limits, pacing, and caps.

Capacity pools

Shared supply, allocation, and budgets across lanes.

API reference

Set temporary running and unsettled advice.