1 What are microservice APIs?


This chapter covers

  • What microservices are and how they compare with monolithic applications
  • What web APIs are and how they help us drive integrations between microservices
  • The most important challenges of developing and operating microservices

This chapter defines the most important concepts in this book: microservices and APIs. Microservices are an architectural style in which components of a system are designed as independently deployable services, and APIs are the interfaces that allow us to interact with those services. We will see the defining features of microservices architecture and how they compare with monolithic applications. Monolithic applications are structured around a single code base and deployed in a single build.

We’ll discuss the benefits and the disadvantages of microservices architecture. The last part of this chapter talks about the most important challenges that we face when designing, implementing, and operating microservices. This discussion is not to deter you from embracing microservices, but so that you can make an informed decision about whether microservices are the right choice of architecture for you.

1.1 What are microservices?

1.1.1 Defining microservices

1.1.2 Microservices vs. monoliths

1.1.3 Microservices today and how we got here

1.2 What are web APIs?

1.2.1 What is an API?

1.2.2 What is a web API?

1.2.3 How do APIs help us drive microservices integrations?

1.3 Challenges of microservices architecture

1.3.1 Effective service decomposition

1.3.2 Microservices integration tests

1.3.3 Handling service unavailability

1.3.4 Tracing distributed transactions

1.3.5 Increased operational complexity and infrastructure overhead

1.4 Introducing documentation-driven development

1.5 Introducing the CoffeeMesh application