Concepts

Decisions

Trypema returns decisions that tell you whether to proceed, reject, or shed load.

Every limiter call returns a RateLimitDecision. The provider changes where state lives, but the decision model stays the same.

Allowed

Allowed means the request should proceed.

You will see this:

  • below the limit in absolute mode
  • below the limit in suppressed mode
  • sometimes above the nominal limit in suppressed mode when the probabilistic check still admits the request

Rejected

Rejected is used by the absolute strategy.

It means the limiter hit a hard boundary and the request should not proceed. The decision can also include best-effort hints such as:

  • retry_after_ms
  • remaining_after_waiting

Those are operational hints, not a promise of exact future admission.

Suppressed

Suppressed is used by the suppressed strategy. It carries:

  • is_allowed
  • suppression_factor

The important rule is simple: always check is_allowed.

If is_allowed is true, the request may proceed. If it is false, the request should be dropped or degraded.

When each decision shape appears

StrategyDecision shapes
AbsoluteAllowed, Rejected
SuppressedAllowed, Suppressed { is_allowed, suppression_factor }

What this means for application code

  • Absolute mode is easiest when your app wants a hard yes/no answer.
  • Suppressed mode is better when your app wants controlled load shedding instead of a cliff-edge cutoff.