Skip to content

Home

Development

IDEs

API Explorer

Releases

Release notes

Martini Runtime

Martini Desktop

Martini Online

Feature requests

Bug reports

API throttling

Martini allows you to conditionally throttle HTTP-based service invokes using throttling rules. Throttling lets you can control the rate at which services are invoked. It is typically used for:

  • Enhancing performance by avoiding resource exhaustion.

    Resource exhaustion

    For example, a service that makes repeated calls to the database may cause an instance-wide slowdown because database operations are expensive. By throttling, we can limit calls to services like this to ensure availability across Martini.

  • Restricting API usage, according to your organization's policies.

  • Mitigating Denial of Service (DoS) attacks.

Conditions for checking throttling rule matches

No checks will be done if there are no configured throttling rules. If multiple rules are applicable for the call, the rule with the highest priority will be chosen.

Every time an HTTP request is received, Martini will check for an applicable throttling rule. If it finds a match, then it will check if the configured rate has been exceeded. If not, the request is processed as usual; otherwise, Martini will throw an error response:

1
2
3
4
5
{
    "result": "ERROR",
    "apiErrorCode": -1,
    "message": "You have already exceeded the '1' requests allowable every '1 minute'."
}