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

Dependency Command pattern #439

Open
iluwatar opened this issue Jul 2, 2016 · 3 comments
Open

Dependency Command pattern #439

iluwatar opened this issue Jul 2, 2016 · 3 comments

Comments

@iluwatar
Copy link
Owner

iluwatar commented Jul 2, 2016

Description:

The Dependency Command design pattern is essential for managing dependencies and executing commands in a distributed system. This pattern helps in building fault-tolerant applications by isolating points of access to remote systems, services, or resources. The primary elements of this pattern include:

  1. Command Interface: Defines the contract for executing operations.
  2. Concrete Commands: Implement the Command interface and define the actual business logic for various operations.
  3. Command Executor: Responsible for executing the commands and managing dependencies between them.
  4. Dependency Graph: Represents the dependencies between commands to ensure they execute in the correct order.
  5. Fallback Mechanism: Provides alternative commands or responses when the primary command fails, ensuring system resilience.

This pattern is particularly useful in high-volume distributed systems where failure is not an option. It ensures that commands with dependencies are executed in the correct sequence, and fallback mechanisms are in place to handle potential failures gracefully.

References:

  1. Project Contribution Guidelines
  2. Netflix Tech Blog: Fault Tolerance in a High Volume Distributed System

Acceptance Criteria:

  1. Implement the Command interface and a few sample Concrete Commands demonstrating different operations.
  2. Develop a Command Executor that handles the execution and manages the dependencies between commands.
  3. Include a fallback mechanism to provide resilience in case of command execution failures.
@mohanaraosv
Copy link
Contributor

I would like to work on this pattern

@iluwatar
Copy link
Owner Author

iluwatar commented Jun 6, 2018

@iluwatar
Copy link
Owner Author

iluwatar commented Oct 5, 2019

The task is free for anyone to work on

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment