Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Implement Fallback design pattern #2846

Open
iluwatar opened this issue Mar 24, 2024 · 5 comments · May be fixed by #3151
Open

Implement Fallback design pattern #2846

iluwatar opened this issue Mar 24, 2024 · 5 comments · May be fixed by #3151

Comments

@iluwatar
Copy link
Owner

iluwatar commented Mar 24, 2024

Description:
The Fallback design pattern is a resiliency pattern used in microservices architecture to handle failures gracefully. It ensures that when a service is unavailable or fails, the system can continue to operate by providing an alternative response or executing a predefined fallback mechanism. This pattern enhances the robustness and reliability of microservices by preventing cascading failures and improving the overall user experience.

Main Elements of the Pattern:

  • Service Degradation: Provides a simplified version of the service or a cached response to maintain functionality.
  • Fallback Handlers: Defines alternative methods or responses when the primary service call fails.
  • Circuit Breaker Integration: Often used in conjunction with the Circuit Breaker pattern to monitor service health and redirect to fallback handlers when necessary.
  • Timeout Management: Configures timeouts for service calls to ensure quick fallback execution.
  • Resilience and Fault Tolerance: Enhances the system's ability to withstand failures without significant disruption.

References:

  1. Microservices Patterns - Fallback
  2. Spring Cloud Netflix - Hystrix Fallback
  3. Resilient Microservices with Spring Boot and Hystrix
  4. Java Design Patterns - Contribution Guidelines
  5. Fallback pattern

Acceptance Criteria:

  1. Implement a Fallback design pattern in the existing microservices architecture.
  2. Ensure the primary service call and fallback handlers are properly defined and integrated.
  3. Use a Circuit Breaker pattern to monitor the health of the primary service.
  4. Configure timeouts for service calls to trigger fallback mechanisms promptly.
  5. Provide unit and integration tests to validate the fallback functionality.
  6. Document the implementation details and usage instructions in the project’s README file.
@sharathkumar55
Copy link

Hi @iluwatar could you please assign this task to me so that I can start work on this .Thank you!!

Copy link

stale bot commented Jul 31, 2024

This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status: stale issues and pull requests that have not had recent interaction label Jul 31, 2024
@stale stale bot removed the status: stale issues and pull requests that have not had recent interaction label Aug 1, 2024
@iluwatar iluwatar added info: help wanted status: stale issues and pull requests that have not had recent interaction labels Aug 1, 2024
@stale stale bot removed the status: stale issues and pull requests that have not had recent interaction label Aug 1, 2024
@iluwatar iluwatar moved this from In Progress to Todo in Java Design Patterns project Aug 1, 2024
@hrishikesav
Copy link

Hi @iluwatar, please assign this issue to me. I have an approach to implement this pattern. Thank you.

Copy link

stale bot commented Nov 22, 2024

This issue has been automatically marked as stale because it has not had recent activity. The issue will be unassigned if no further activity occurs. Thank you for your contributions.

@stale stale bot added the status: stale issues and pull requests that have not had recent interaction label Nov 22, 2024
@AhmedAbdelRaheem1
Copy link

Hi @iluwatar, please assign this issue to me so I can implement this pattern. Thank you.

@stale stale bot removed the status: stale issues and pull requests that have not had recent interaction label Nov 26, 2024
This was referenced Dec 10, 2024
# for free to join this conversation on GitHub. Already have an account? # to comment
Projects
Status: In Progress
4 participants