Chapter 1, Monolithic Versus Microservices, introduces monolithic and microservice architecture and discusses when to use what. It also covers the possible migration plans of moving from monolithic applications to microservices.
Chapter 2, Microservices Architecture, covers the basic building blocks of microservice architecture and its related features. It discusses how to set up messaging and contracts, and manage data flows among microservices.
Chapter 3, Microservices for Helping Hands Application, introduces a sample Helping Hands application and describes the steps that will be taken in the rest of the book to build the application using microservices. Further, the chapter compares and contrasts the benefits of using a microservices-based architecture compared with a monolithic one.
Chapter 4, Development Environment, covers Clojure and REPL at a high level and introduces the concepts of Leiningen and Boot—the two major build tools for any Clojure project. The emphasis will be on Leiningen with a basic introduction to Boot on how to set up a Clojure project for implementing microservices.
Chapter 5, REST APIs for Microservices, covers the basics of the REST architectural style, various HTTP methods, when to use what, and how to give meaningful names to RESTful APIs of microservices. It also covers the naming conventions for REST APIs using the Helping Hands application as an example.
Chapter 6, Introduction to Pedestal, covers the Clojure Pedestal framework in detail with all the relevant features provided by Pedestal, including interceptors and handlers, routes, WebSockets, server-sent events, and chain providers.
Chapter 7, Achieving Immutability with Datomic, gives an overview of the Datomic database along with its architecture, data model, transactions, and Datalog query language.
Chapter 8, Building Microservices for Helping Hands, is a step-by-step, hands-on guide to build and test microservices for the Helping Hands application using the Pedestal framework.
Chapter 9, Configuring Microservices, covers the basics of microservices configuration and discusses how to create configurable microservices using frameworks such as Omniconf. It also explains the steps to manage the application state effectively using available state-management frameworks such as Mount.
Chapter 10, Event-Driven Patterns for Microservices, covers the basics of event-driven architectures and shows how to use Apache Kafka as a messaging system and event store. Further, it discusses how to use Apache Kafka brokers and set up consumer groups for the effective coordination of microservices.
Chapter 11, Deploying and Monitoring Secured Microservices, covers the basics of microservices authentication using JWT and how to set up a real-time monitoring system using the ELK Stack. It also explains the basic concepts of containers and orchestration frameworks such as Kubernetes.