Trackwootis a project I started in high school (2003) which I let fall into disrepair and just recently have resurrected with my business partner Lingo. This is a tool that allows fans of Woot.com to keep tabs on the item currently on each site. The app is quite simple but the process is complex. Here is the workflow when someone opens the app on their phone:
- Check the cache of the phone, load most recently seen item.
- Request an update from the server
- The server is requesting data from Woot.com’s API every 1-10 minutes depending on whether there is a Woot-Off going on or not.
- The server has saved Woot’s response including our Affiliate codes & Amazon Affiliate Data into a cached json file.
- The server replies with the plaintext version of the cache.
- The user’s device presents the new data
- The server notices there is a new item on one of the sites the user wants to be notified about
- The server sends a push notification to the user
- The user opens the app (see previous workflow)
What is really cool about this app is even while supporting around 25,000 users we’re see little to no load on the server (even with push events). These push events are actually offloaded onto a queue which is optimized to push requests as fast as possible (so app users know ASAP if the item the want is up) and threaded so we can issue a ton of requests without trying to pump all the data through one request.