REST (Representational State Transfer) API is an architectural style for designing networked applications that uses HTTP requests to perform CRUD operations on resources identified by URLs. It enforces stateless communication, meaning each request from a client must contain all information needed to process it, with no session state stored on the server. REST APIs are the backbone of modern web services, enabling interoperability between frontend clients, mobile apps, and backend services.
| HTTP Method | Operation | Idempotent | Example Endpoint |
|---|---|---|---|
| GET | Read/Retrieve | Yes | GET /users/123 |
| POST | Create | No | POST /users |
| PUT | Update (full) | Yes | PUT /users/123 |
| PATCH | Update (partial) | No | PATCH /users/123 |
| DELETE | Delete | Yes | DELETE /users/123 |
Wikimedia Commons, CC BY-SA
Microservices architecture is a software design approach where an application is structured as a collection of small, independently deployable services, each responsible for a specific business capability and communicating over well-defined APIs. Unlike monolithic architectures where all components share a single codebase and runtime, microservices can be developed, deployed, and scaled independently using different programming languages and data stores. This pattern enables large engineering teams to work in parallel, improves fault isolation, and supports continuous delivery pipelines at scale.
A message queue is an asynchronous communication mechanism where a producer application sends messages to a buffer (the queue), and a consumer application retrieves and processes them independently, enabling decoupled communication between system components without requiring both parties to be available simultaneously. Message queues implement the producer-consumer pattern and support key enterprise integration patterns such as load leveling (absorbing traffic spikes), fan-out (broadcasting to multiple consumers), and retry logic (requeuing failed messages). Technologies like RabbitMQ, Apache Kafka, and AWS SQS are foundational to event-driven microservices architectures, enabling reliable asynchronous workflows such as order processing, email delivery, and data pipeline ingestion.
NoSQL databases are non-relational data storage systems that provide flexible schemas and horizontal scalability by abandoning the traditional table-row-column model of SQL databases in favour of document, key-value, column-family, or graph data models. They were designed to address the limitations of relational databases when handling massive volumes of unstructured or semi-structured data, high write throughput, and distributed deployments across commodity hardware. Popular NoSQL databases like MongoDB, Redis, Cassandra, and Neo4j are widely used in web-scale applications, real-time analytics, caching layers, and social network graphs.
REST was coined by Roy Fielding in his 2000 PhD dissertation at UC Irvine. "Representational State Transfer" describes how resources are identified (URI), accessed (HTTP), and their state transferred (JSON/XML) between client and server.