System Design #8: API Design — REST, GraphQL, gRPC
In the previous article, you learned about message queues for asynchronous communication. But most communication in a system is synchronous — a client sends a request and waits for a response. That is where APIs come in. An API (Application Programming Interface) is a contract between two systems. It defines how they communicate: what requests you can send, what responses you get back, and what format the data is in. Good API design is critical. A bad API slows down development, confuses users, and is hard to change later. ...