Episode 98: Stefan Tilkov on REST

Topics covered
Popular Clips
Episode Highlights
Core Principles
explains that REST, or Representational State Transfer, is a set of architectural principles independent of specific technologies, which can be applied to any architecture, such as Java-based systems 1. These principles are exemplified by the web itself, where HTTP and URIs are based on REST concepts. A key aspect of REST is interacting with resources through their representations, allowing for different formats like HTML or XML 2. Tilkov emphasizes the importance of stateless communication in REST, which restricts statefulness to enhance scalability and reliability 3.
REST is a set of principles that are independent from any particular technology.
---
The discussion also highlights the flexibility of REST in modeling resources and the emerging best practices in its design.
URI Design
In RESTful design, URIs play a crucial role by emphasizing nouns over verbs, which contrasts with traditional web service interfaces that often focus on operations 4. illustrates this with an order management system, where each order and customer is identified by a unique URI, promoting a more resource-centric approach 5. This method allows for a more intuitive interaction with resources, as each entity in the system is treated as a resource with its own identifier.
You have more nouns than verbs. So I will have orders and every particular order will have its own id.
---
Tilkov warns against becoming overly focused on URI design, suggesting that while readable and hackable URIs are beneficial, they should not overshadow the primary goal of creating a functional and efficient system.
Statelessness
Stateless communication is a fundamental principle of REST, where client-specific information is not stored in sessions but rather as resource state 6. clarifies that while state can exist, it should be identifiable and shareable, such as a shopping cart link that can be bookmarked or sent to others. This approach contrasts with traditional session-based systems that often require complex state management across servers.
Sessions are totally, totally opposed to REST's core beliefs.
---
By adhering to stateless communication, RESTful systems can achieve greater scalability and simplicity, avoiding the pitfalls of session persistence and enhancing the overall user experience.
Related Episodes


Episode 210: Stefan Tilkov on Architecture and Micro Services
Answers 383 questions

Episode 85: Web Services with Olaf Zimmermann
Answers 383 questions

Episode 20: Interview Michael Stal
Answers 383 questions

Episode 39: Interview Steve Vinoski
Answers 383 questions

Episode 112: Roles in Software Engineering II
Answers 383 questions

Episode-226-Eric-Evans-on-Domain-Driven-Design-at-10-Years
Answers 383 questions

Episode 495: Vaughn Vernon on Strategic Monoliths and Microservices
Answers 383 questions

SE-Radio-Episode-232:-Mark-Nottingham-on-HTTP/2
Answers 383 questions

Episode 116: The Semantic Web with Jim Hendler
Answers 383 questions
Episode 122: Interview Janos Sztipanovits
Answers 383 questions

Episode 200: Markus Völter on Language Design and Domain Specific Languages
Answers 383 questions

Episode 33: Service Oriented Architecture, Pt.2b
Answers 383 questions

Episode 10: Remoting Pt. 2
Answers 383 questions

Episode 198: Wil van der Aalst on Workflow Management Systems
Answers 383 questions

Episode 143: API Design with Jim des Rivieres
Answers 383 questions













