Scaling to 100k Users
I have a few questions:<p>1) I don't really get the "100 Users: Split Out the Clients".<p>It definetly helps in terms of understanding your customer profiles, whether they prefer the mobile app or the web interface for instance, and it might help from a usability point of view, but how does this help scalability per se if the API layer stays the same?<p>Splitting client happens, obviously, at the client level..<p>2) Also, I don't understand "This is why I like to think of the client as separate from the API."<p>Who considers the client and the API as the same thing?<p>You can consider the API as the client of the DB, sure, but why would you mix the user client and API together?<p>3) Caching: here I lack some knowledge. "We’ll cache the result from the database in Redis under the key user:id with an expiration time of 30 seconds". I assume that every access to Redis <i>will not</i> refresh the cache (aka reset the counter), otherwise you could potentially never get an updated data, right?