Mr. Anderson

"Mr. Anderson" is a personal experiment with different approaches to handling high amounts of traffic with a slow persistence mechanism that cannot itself be changed. I wanted to do this for several reasons:

Overview

The general setup consists of the follow parts:

All variants must use the REST API as canonical source of truth for the state of the application, and a variants maximum performance is measured by the amount of requests/second it can serve the correct response to with a <800ms response time.

Initially I have the basic API and a straight pass-through PHP implementation (as a baseline). The load test consists of a series of reads of 1 random item per request. The API adds an artificial 100ms delay to each request.

Plan

My intent is to first add some variants that perform better than the baseline (ie: with simple caching, load balancing, etc). After that I can start ratcheting up the requirements of the test with stuff like:

After each addition I can work out how to let the existing approaches deal with it and possibly add new approaches, if they provide a good solution and/or interest me.