API Design for Distributed Systems · TL;DR
1 min readRapid overview
TL;DR
In an interview the API is where you demonstrate that you have actually thought about the system rather than only drawn it. Three decisions carry almost all the weight: the protocol style, which follows from who the caller is rather than from preference; pagination, where offset-based paging is subtly broken on changing data; and idempotency, which is not optional in any system where a client may retry — and every network client may retry, because a timeout is indistinguishable from a slow success.