Published Sep 3, 2019

Episode 98: Stefan Tilkov on REST

Stefan Tilkov delves into the transformative power of RESTful principles in enterprise systems, contrasting them with traditional web service standards, while emphasizing REST's alignment with scalability, integration, and efficient HTTP protocol utilization.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • HTTP Methods

    Efficient HTTP methods are crucial for building scalable RESTful applications. explains that HTTP's core methods—GET, PUT, POST, and DELETE—each have specific semantics defined in the HTTP specification, which ensures a uniform interface for all resources 1. This uniformity allows developers to rely on predictable behaviors, such as the safety of GET requests, which should not have side effects or incur costs. Tilkov notes, "An HTTP GET will never oblige me to anything. I will not have to pay for it, I will not get an invoice two weeks later telling me that I have there. GET should be safe."

    An HTTP GET will never oblige me to anything. I will not have to pay for it, I will not get an invoice two weeks later telling me that I have there. GET should be safe.

    ---

    This predictability is a powerful concept, enabling developers to build robust systems that can handle a variety of operations efficiently.

       

    Caching

    Caching is a fundamental feature of HTTP that significantly enhances the scalability of RESTful systems. highlights that HTTP's sophisticated caching mechanisms, such as conditional GETs and the use of ETags, prevent unnecessary data retrieval, thus optimizing performance 2. He emphasizes that caching is what makes the web scalable, allowing for efficient resource management. Tilkov states, "Caching is very sophisticated in HTTP and it's actually what makes the web so scalable."

    Caching is very sophisticated in HTTP and it's actually what makes the web so scalable.

    ---

    Additionally, HTTP provides a rich set of response codes that inform clients about resource states, further aiding in efficient application design 3.

Related Episodes