Chapter 1. Enterprise Java microservices
Figure 1.1. Typical Enterprise Java application architecture
Figure 1.2. Enterprise Java spaghetti
Figure 1.3. Enterprise Java microservices
Figure 1.4. Typical microservices architecture
Figure 1.5. Store domain model
Figure 1.6. Separate Bounded Contexts
Figure 1.7. Enterprise Java and microservices hybrid architecture
Chapter 2. Developing a simple RESTful microservice
Figure 2.2. Cayambe monolith architecture
Figure 2.3. Cayambe future architecture
Figure 2.4. Old Cayambe administration interface
Figure 2.5. New Cayambe administration interface
Figure 2.6. Cayambe administration microservice and UI
Figure 2.7. Category management state flow
Figure 2.8. Category management architecture
Chapter 3. Just enough Application Server for microservices
Figure 3.1. Microservice specification usage of full Java EE platform
Figure 3.2. Microservice specification usage of Java EE Web Profile
Figure 3.3. JeAS as runtime for microservices architecture
Figure 3.4. Traditional Java EE vs. JeAS runtimes
Figure 3.5. Microservice usage in Dropwizard
Figure 3.6. Payara Micro compared to Web Profile
Figure 3.7. Microservice usage in Payara Micro
Chapter 4. Microservices testing
Chapter 5. Cloud native development
Figure 5.1. Service models in the cloud
Figure 5.2. Service models in the cloud with containers
Figure 5.3. What Minishift provides
Figure 5.4. OpenShift web console
Figure 5.5. OpenShift web console, showing the admin service
Chapter 6. Consuming microservices
Figure 6.1. Enterprise Java business service calls
Figure 6.2. Consuming microservices
Chapter 7. Discovering microservices for consumption
Figure 7.1. Microservice direct lookup
Figure 7.2. Microservice direct lookup with multiple instances
Figure 7.4. Service discovery with failed microservice
Figure 7.5. Service discovery with Netflix Ribbon
Chapter 8. Strategies for fault tolerance and monitoring
Figure 8.1. Microservices in a distributed architecture
Figure 8.2. Microservice processing user requests without Hystrix
Figure 8.3. Microservice processing user requests with Hystrix
Figure 8.4. Electrical circuit-breaker states
Figure 8.5. Failure mitigation flow with basic circuit
Figure 8.6. Circuit-breaker states
Figure 8.7. Failure mitigation flow with bulkhead
Figure 8.8. Failure mitigation flow with fallback handling
Figure 8.9. Failure mitigation flow with request cache
Figure 8.10. Entire failure mitigation flow
Figure 8.11. Microservice calls with failure mitigation
Chapter 9. Securing a microservice
Figure 9.2. Malicious external user
Figure 9.3. Malicious internal user
Figure 9.4. Multiple user roles for authorization
Figure 9.5. Internal and external user roles
Figure 9.6. Setting up the Keycloak Admin user
Figure 9.7. Logging into the Keycloak administration console
Figure 9.8. Keycloak administration console
Figure 9.9. User authentication via a UI
Figure 9.10. Microservice authentication
Figure 9.11. Microservice authentication with Stripe and Payment
Figure 9.12. Accessing the Add realm button in Keycloak
Figure 9.14. Importing the Cayambe realm
Figure 9.15. User authentication via UI
Figure 9.16. Cayambe Admin screen
Figure 9.17. Cayambe Admin when logged in with the User role
Figure 9.18. Cayambe Admin when logged in with the Admin role
Chapter 10. Architecting a microservice hybrid
Figure 10.2. Cayambe code structure
Figure 10.3. Cayambe monolith deployment
Figure 10.4. Enterprise Java and microservices hybrid architecture
Figure 10.5. Proposed Cayambe hybrid monolith
Figure 10.6. Cayambe hybrid monolith
Figure 10.7. Choosing the Browse Catalog option in the OpenShift console
Chapter 11. Data streaming with Apache Kafka
Figure 11.1. Data-streaming pipes
Figure 11.2. Apache Kafka integrations (reproduced from https://kafka.apache.org/intro.html)
Figure 11.3. Immutable data stream
Figure 11.4. Topic partitions (reproduced from https://kafka.apache.org/intro.html)
Figure 11.5. Topic producers and consumers (reproduced from https://kafka.apache.org/intro.html)
Figure 11.6. Current Cayambe hybrid monolith
Appendix Appendix. Spring Boot microservices
3.144.255.87