Congrats for the book. From the TOC, I saw that you covered Spring Microservices using Spring Cloud. What are some benefits of using Spring Cloud vs Other similar technologies (Apache Kafka, rabbitMQ, Camunda ) for microservice orchestration? Basically, why the Spring Cloud when using the microservice architecture?
Spring Cloud offers much of the operational functionality you need for when you are building a microservices based application? (e.g. Config management, service discovery, intelligent routing, log aggregation and correlation)? You can use Spring Cloud Stream to do event-based microservices. Chapter 8 in the book actually demonstrates some simple event processing using Kafka and Spring Cloud Stream. Too me Kafka, RabbitMQ, etc... are really message backbones for publishing messages to services. I think Spring Cloud works really well when you are building Spring Applications in an internal data center or where you are going to be deploying your services to Docker containers that are not managed in something like a Kubernetes cluster. Also, if you plan on using the Pivotal Cloud (e.g. Cloud Foundry), many of the Spring Cloud services outlined in the book are available inside of cloud foundry.
Frankly, there is a lot of overlap between Spring Cloud and Kubernetes. If you are planning on running your Spring services in Kubernetes, you might want step back from Spring Cloud and take advantage of whats in Kubernetes. Kubernetes offers service discovery, logging, security, configuration management, etc... However, if you use something like Kubernetes things like Spring Cloud Stream and Spring Cloud/Hysterix are not part of the Kubernetes stack.
John Carnell - Senior Engineer, Genesys PureCloud Division
Author of Spring Microservices in Action