Hello Carl,
Thanks for the reply.
Actually I was looking for some thing like
https://github.com/Netflix/Hystrix. However Hystrix is specific to Java and it does not support streaming APIs. I want to know whether there is any inbuilt mechanism in gRPC to handle this irrespective of the language of the client stubs.
Example
-------------
Lets say I have two mircro-services deployed separately. TaxService (Go) and PricingService (Java), which PricingService depends on TaxService.
service PricingService {
rpc getPrice (PricingRequest) returns (PricingResponse) {}
}
message PricingRequest {
string productId = 1;
}
message PricingResponse {
double price = 1;
double tax = 2;
}
I will call TaxService to get the tax amount when calculating the price. However if TaxService is not available I want a fallback mechanism in the client side (ie within PricingService implementation). Basically I should be able to set something like a fallback handler in the TaxServiceClient stub for the getTax method.
If there are too much fallbacks happening then client will automatically break the circuit between PricingService and TaxService for some time to prevent escalating failures.
Best Regards
Pamb