Kafka provides an asynchronous mechanism to respond to events generated by actions in other systems. Http REST allows synchronous response to consumer requests
Docker provides an excellent mechanism to build and test the "bits" in a container and then deploy that tested container into any environment using environment variables to change behaviour
Docker ensures that code is tested and is safe for deployment to new environments. CI/CD enables test automation to test the code in a container. SonarQube scans ensure no vulnerabities are present.
Docker allows applications and services to be packaged in a static container that can then be deployed to all environments. Kubernetes enables the hosting and scaling of all containers in a runtime environment. CI/CD ensures this process is fully automated.
Docker allows applications and services to be built once and deployed many times. Environment variables can be used to modify service behaviour across disparate environments.