Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 12 additions & 2 deletions docs/services/esi/best-practices.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,16 +65,26 @@ eveseat:eveapi/5.0.22 (admin contact: foo@example) (https://github.com/eveseat/s
RIFT/1.2.3 (foo@example.com)
```

## Error Limit
## Requests Limit

ESI limits how many errors you’re allowed to get within a set time frame. Once you reach the error limit, all your request are automatically discarded until the end of the time frame. Failing to respect the error limit can get you banned from ESI. This system allows ESI to not use a fixed request rate limit.
ESI can limit your requests in two way : with global errors limits, and with endpoint-specific bucket limit.

Not abiding to the information transmitted can lead to your app being **banned**, for various time, from accessing the resources.

### Error limit

ESI limits how many errors you’re allowed to get within a set time frame. Once you reach the error limit, all your request are automatically discarded until the end of the time frame.

Error limit headers:
`X-ESI-Error-Limit-Remain` errors left in this time frame.
`X-ESI-Error-Limit-Reset` seconds left until next time frame and errors reset to zero.

The details are explained in this blog post: [Error Rate Limiting](/blog/error-rate-limiting-imminent)

### Bucket Limit

This limitation is described in [its own dedicated page](./rate-limiting.md)

## Caching

The ESI acts as both an http handler for resources available in the monolith, and a cache manager of those resources' representation. You can get a benefit from the caching in several ways, depending on the request you send.
Expand Down