Performance

Despite data being aggregated, to achieve acceptable performance we use caching altogether with gzip compression. Compression is essential for heavy responses, for example country boundaries and school points.

Caching is used to store responses entirely and being updated by background worker to avoid API performance issues caused by re-generating expired responses. More information can be found in SoftCacheManager mixin. The main idea is to return cached data even in case of expiration and run background task to update info. It means, first request after expiration will trigger cache key update and receive old information instead of trying to update info synchronously. Also, cache is being updated periodically if not requested by user for a long time to keep cached information up to date.

Last updated

Was this helpful?