While SOA introduced the concept of "services," many organizations still built large, centralized applications (Monoliths) connected by a heavy Enterprise Service Bus (ESB). As cloud computing emerged, the industry needed something lighter, faster to deploy, and easier to scale.
Microservices Architecture is an approach where a single application is composed of many small, independent services. Each service runs in its own process, manages its own database, and communicates with lightweight mechanisms (usually an HTTP resource API).
Figure 1: Monolithic vs. Microservices Architecture
To enable communication between these microservices, developers moved away from heavy SOAP/XML protocols and embraced REST (Representational State Transfer). REST uses standard HTTP methods to interact with resources (data entities).
GET - Retrieve data (e.g., Get a student's profile).POST - Create new data (e.g., Register a new student).PUT / PATCH - Update existing data.DELETE - Remove data.Instead of XML, REST APIs primarily use JSON (JavaScript Object Notation). JSON is much lighter, faster to parse, and native to web browsers and modern programming languages.
Let's revisit the Udayana University example from Lecture 5. Here is how a modern REST API handles the exact same request for student information:
Notice there is no XML envelope. It's just a simple HTTP URL call.
GET /api/v1/students/1905551042 HTTP/1.1
Host: api.unud.ac.id
Accept: application/json
Authorization: Bearer abc123token
The server responds with a clean, lightweight JSON object.
HTTP/1.1 200 OK
Content-Type: application/json
{
"studentId": "1905551042",
"name": "I Wayan Sudarma",
"status": "ACTIVE",
"faculty": "Engineering"
}
While REST is the industry standard today, newer paradigms have emerged to solve specific integration challenges in microservices: