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

Refactor: Decouple Orchestration and API Layers in NV-Ingest #485

Open
wants to merge 92 commits into
base: main
Choose a base branch
from

Conversation

drobison00
Copy link
Collaborator

Summary

This PR refactors nv-ingest to cleanly separate the orchestration layer from the API elements, allowing finer-grained usage of individual work elements via the API. This improves modularity and makes it easier to invoke specific pipeline components independently.

Changes

Separation of Concerns

  • Moved all API-related code into src/api/ to centralize API functionality.
  • Moved all orchestration code into src/nv_ingest/framework/, ensuring a clearer distinction between execution flow and API access.
  • Client code remains unchanged in client/.

Standardized API Interface

  • Introduced a common API signature for stage-level execution:
    (
        df_extraction_ledger: pd.DataFrame, 
        config: Dict[str, Any], 
        execution_trace_log: Optional[List[Any]] = None
    ) -> Tuple[pd.DataFrame, Dict]
  • This ensures consistency across API-exposed pipeline stages.

Benefits

  • Enables fine-grained execution of pipeline elements through the API.
  • Simplifies code structure by clearly separating orchestration from API concerns.
  • Makes it easier to extend and maintain API interactions independently of orchestration logic.

Next Steps

  • Additional testing to ensure smooth orchestration/API interaction.
  • Documentation updates to reflect new API structure.

Checklist

  • I am familiar with the Contributing Guidelines.
  • New or existing tests cover these changes.
  • The documentation is up to date with these changes.

drobison00 and others added 30 commits February 18, 2025 11:27
@drobison00 drobison00 added feature request New feature or request help wanted Extra attention is needed epic high level feature/functionality labels Mar 5, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic high level feature/functionality feature request New feature or request help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants