Skip to content
This repository has been archived by the owner on Feb 23, 2023. It is now read-only.

billkable/s1-spring-cloud-course-errata

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 

Repository files navigation

Spring Cloud Course Errata - Spring One 2019

Instructors

Spring Cloud R&D

References

Spring Cloud Service Demo

Spring Cloud Services Config Server Demo

Alternate Patterns and Architecture styles not covered in the course

Hystrix Request Collapsing - If you are doing a number of concurrent requests you may be performance benefit of batching. Hystrix provides this feature:

Hystrix Caching:

Enterprise Integration Patterns

Reactive Messaging Patterns with Actor Model (Thanks Danny)

Checkout these sessions at Spring One

Spring Cloud on Kubernetes Tuesday 11:30am–12:40pm, 19AB

Reactive Architectures with RSocket and Spring Cloud Gateway Wednesday, 4:20pm, 19AB

Spring Cloud Gateway for Stateless Microservice Authorization Thursday, 12:30pm, Ballroom G

How to Live in a Post - Spring Cloud Netflix World Tuesday, 2:00pm, 19AB

What's New in Spring Cloud Services 3 Tuesday, 3:20pm, 19AB

Building Robust and Resilient Apps Using Spring Boot and Resilience4j Thursday 12:30pm–1:30pm, 16AB

Student Questions and Answers

Question: Will @RefreshScope work with Native file Spring Cloud Config backend?

Answer: Yes

Question: Does spring-cloud-bus use Eureka directly, or does it use an abstract discovery client? The context of the question is from the reference with following statement: "The bus currently supports sending messages to all nodes listening or all nodes for a particular service (as defined by Eureka)".

Answer: Spring Cloud Bus does not have any direct or dependencies on Eureka. It uses pub/sub model with AMQP and Kafka, not service discovery. This is likely for example use in a Microservices architecture using Eureka as service registry.

Question: Does Sleuth support instrumenting AMQP headers?

Answer: Yes (Thanks Matthew for the followup). See the Spring Cloud Sleuth docs Messaging for more broad discussion of which messaging providers are supported.

Question: I asked a question about using retry for ensuring cross service transactional integrity. The issue we have is 1 microservice is processing an order and making a request to a financial microservice. Occasionally the 2 services lose connectivity but only after the debit has been requested (and most of the time succeeds after the socket is severed). We are using retry with idempotent ids to have the order service re-request and see if the transaction completed. Is there a better way to approach this transient error?

Answer: The short form answer to that has a few options. Notice they are beyond the scope of the current Spring Cloud course, and require different architecture patterns:

  1. Check out the Saga Pattern for a coarse grained overview, and this blog.

  2. For traditional service transaction approach (which might be REST/SOAP over HTTP, or other RPC integration), consider an Orchestration Saga. From a Domain-driven-design (DDD) perspective, the Saga might be considered its own bounded context if the complexity of coordination is complex.

  3. For event-based approach, consider using Choreographed Saga. Event-based and event-sourcing architectures are gaining a lot of attention to solve these types of problems, but would introduce significant change to an existing, exclusive RPC architecture.

Question: I asked a question about Hystrix exception handling for specific types of exceptions vs just run time. Can you please provide the link to the documentation.

Answer: I was incorrect in stating this is (externally) configurable. If you want to modify, this would need to be done in code. See How to use Hystrix for more info how the error and fallback propagation works.

About

Spring One 2019 Spring Cloud Course Errata

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages