Published Sep 3, 2019

Episode 213: James Lewis on Microservices

James Lewis delves into the nuances of microservices architecture, highlighting its evolution and contrast with service-oriented architectures, while offering insights on infrastructure, deployment, and team dynamics crucial for successful implementation. With a focus on testing complexities, Lewis shares advanced strategies like executable specifications and consumer-driven contracts to manage and optimize complex service environments.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Microservices Defined

    , a principal consultant at ThoughtWorks, defines microservices as small, independently deployable applications with a single responsibility. These services can be scaled and tested independently, making them highly adaptable to changes. He emphasizes that microservices are designed to perform one task efficiently, whether it's processing a queue or serving a specific resource like a user or article 1. This architectural style has gained popularity due to its ability to break down large, unmanageable applications into smaller, more manageable components 2.

    A microservice in my mind is a small application that can be deployed independently, scaled independently, that can be tested independently, and which has a single responsibility.

    ---

    This approach allows for easier maintenance and scalability, addressing common issues faced by large-scale applications.

       

    Microservices vs. SOA

    The discussion contrasts microservices with service-oriented architecture (SOA), highlighting differences in implementation and community perspectives. notes that while SOA has a sensible foundation, its execution often fails to deliver value due to overly complex and costly implementations 3. Microservices, on the other hand, adopt a more iterative and incremental approach, focusing on decentralized governance and lightweight solutions 4.

    The microservices idea is really about that reality, which is why I think it's no surprise it's been a community-led or it's been a bottom-up approach to building systems.

    ---

    This bottom-up approach allows teams to build systems incrementally, releasing value continuously rather than relying on extensive upfront designs.

Related Episodes