Skip to content

Instantly share code, notes, and snippets.

View nsengupta's full-sized avatar

Nirmalya Sengupta nsengupta

View GitHub Profile
@nsengupta
nsengupta / CB_SoccerClubInfoGetter_Failure_Handling.java
Last active April 9, 2017 08:24
CircuitBreaker: SoccerClubInfoGetter's handling of failure
{ // Emulating a failed call to the external service
Thread.sleep(2000);
getSender().tell(
new InteractionProtocol.UnavailableClubDetails("timed out"),
getSelf()
);
}
@nsengupta
nsengupta / CB_CallWastePreventor_receive_handling.java
Last active April 9, 2017 08:27
CircuitBreaker: CallWastePrevento's receive() basic structure
if (clubID == 0) { // A forced 'fail' timeout situation, for demonstration
PatternsCS
.pipe(
circuitBreaker.callWithCircuitBreakerCS(nonWorkingCallable),
getContext().system().dispatcher()
)
.to(getSender());
}
else {
@nsengupta
nsengupta / CB_CallWastePreventor_receive_using_callable.java
Last active April 9, 2017 08:33
CircuitBreaker: CallWastePreventor's callable structure
Callable <CompletionStage<ClubDetailsFromXternalSource>> workingCallable =
new Callable<CompletionStage<ClubDetailsFromXternalSource>>() {
@Override
public CompletionStage<ClubDetailsFromXternalSource> call() throws Exception {
return (
CompletableFuture.supplyAsync(
new Supplier<ClubDetailsFromXternalSource>() {
@Override
public ClubDetailsFromXternalSource get() {