Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Implement Fallback design pattern #2846

Open
iluwatar opened this issue Mar 24, 2024 · 1 comment
Open

Implement Fallback design pattern #2846

iluwatar opened this issue Mar 24, 2024 · 1 comment

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!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Progress
Development

No branches or pull requests

2 participants