lablup / lablup/backend.ai

Implement Updater pattern for update operations

Open
#7,276 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

## Overview

Implement the Updater pattern for update operations, completing the CRUD pattern set alongside Creator, Querier, and Purger.

## Background

The repository layer now has standardized patterns for:

- **Creator**: Insert operations ✅
- **Querier**: Select/search operations ✅
- **Purger**: Delete operations (planned)
- **Updater**: Update operations (this issue)

The Updater pattern needs to be implemented with consistent API design matching the other patterns.

## Goals

1. Design and implement the Updater pattern for update operations
1. Ensure consistent API with Creator, Querier, and Purger patterns
1. Support partial updates with type-safe field specifications
1. Handle validation and serialization consistently

## Design Considerations

- Type-safe field update specifications
- Support for conditional updates (optimistic locking)
- Consistent error handling with other patterns
- Integration with existing repository base classes

## Acceptance Criteria

- [ ] Updater base class implemented
- [ ] Type-safe update field specifications
- [ ] Consistent API with other patterns (Creator, Querier, Purger)
- [ ] Unit tests for Updater pattern
- [ ] Documentation for usage

JIRA Issue: BA-3347

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.