lablup / lablup/backend.ai

Introduce independent action-type abstractions (single-entity / bulk / scope) with per-type runner and monitor

Open
#12,889 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
670
Forks
183
Avg merge
17h 7m
Merged PRs (30d)
358

Description

Implement a brand-new, independent action abstraction split into three action types — single-entity, bulk, and scope — each with its own self-contained base action/result, its own runner (including processor and validator), and its own monitor. This is greenfield: the existing BaseAction framework and the ~46 entities inheriting it are left untouched.

## Design decisions

- No shared supertype: single-entity / bulk / scope bases are fully independent and carry their own common contract.
- Runner is per-type and absorbs processor + validator responsibilities.
- Monitor is per-type; monitors cannot be shared across the three types (implementations genuinely differ).
- Scope action accepts multiple scopes as input (a sequence of scopes), not a single scope_type/scope_id.
- Existing modules under actions/action, actions/processor, actions/validator, actions/monitors are NOT modified; new code lives in isolated new modules.

## Sub-issue breakdown

- Action (1): independent base action + result for all three types.
- Runner (3): one per type (single-entity / scope / bulk), each including processor + validator.
- Monitor (3): one per type (single-entity / scope / bulk).

JIRA Issue: BA-6900

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing actions/action, actions/processor, actions/validator, and actions/monitors modules to understand the boundaries the issue says to preserve. Plan isolated modules for the three independent action/result pairs, their per-type runners, and their per-type monitors. Done means all three types have the specified self-contained components without modifying the existing framework or its entities.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.