lablup / lablup/backend.ai

Implement Redis Repository layer for App Proxy

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

## Goal

Replace SQLAlchemy models with Redis Repository pattern

## Work Items

- Implement `WorkerRepository` (CRUD + heartbeat)
- Implement `CircuitRepository` (read-only, Manager pushes data)
- Implement `TokenRepository` (CRUD + TTL)
- Preserve Traefik configuration generation logic from existing models

## New Files to Create

```
src/ai/backend/appproxy/coordinator/
├── repositories/
│ ├── __init__.py
│ ├── base.py
│ ├── worker.py
│ ├── circuit.py
│ └── token.py
├── domain/
│ ├── __init__.py
│ ├── worker.py # dataclass from existing model
│ ├── circuit.py # dataclass + Traefik methods
│ └── token.py # dataclass
```

## Reference Files

- `src/ai/backend/appproxy/coordinator/models/worker.py` - Worker model
- `src/ai/backend/appproxy/coordinator/models/circuit.py` - Circuit model, Traefik logic
- `src/ai/backend/common/clients/valkey_client/valkey_schedule/client.py` - Redis patterns

JIRA Issue: BA-3223

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.