In this chapter, we explored microservices. First, you saw what distinguishes a microservice from a monolithic application. You learned about the pros and cons of using microservices. Next we explored the topic of even-driven communication. We saw how microservices can communicate with each other using messages and CQRS. We also covered the best practices for designing microservices and some common pitfalls.
You also learned how to implement microservices APIs in Clojure, using the Compojure API. We used the Clojure library, Toucan, to interface with the database, in order to expose data. We used Prismatic's schema to validate data for the API and the Swagger UI to explore the API services.
In the next chapter, we'll look at some ways to test Clojure applications.