This is an old unpublished post. Published now.
Bounds are important. Unbounded or only partially bounded resources and operations pose a risk to latency and availability of your service.
- Bound resource usage (e.g. limit thread pool size)
- Bound queries (e.g. put a where condition limiting the date range, don’t make it open on one side or worse both sides; if it makes sense use the”limit” features in queries)
- Bound time spent waiting on a dependency
On a similar vein, ensure you validate user input against limits before working on them or passing them on to dependencies.
Originally published at https://www.floatingpoint.ca on May 13, 2018.