Files
rdp-proxy/backend/internal/modules/worker/store.go
T
2026-04-28 22:29:50 +03:00

25 lines
1.3 KiB
Go

package worker
import (
"context"
"time"
workercontracts "github.com/example/remote-access-platform/backend/pkg/contracts/worker"
)
type Store interface {
RegisterWorker(ctx context.Context, registration workercontracts.WorkerRegistration, ttl time.Duration) error
TouchWorkerHeartbeat(ctx context.Context, heartbeat workercontracts.WorkerHeartbeat, ttl time.Duration) error
ListWorkers(ctx context.Context) ([]workercontracts.WorkerRegistration, error)
GetWorker(ctx context.Context, workerID string) (*workercontracts.WorkerRegistration, error)
AcquireLease(ctx context.Context, lease workercontracts.WorkerLease, ttl time.Duration) error
GetLease(ctx context.Context, leaseID string) (*workercontracts.WorkerLease, error)
GetLeaseBySession(ctx context.Context, sessionID string) (*workercontracts.WorkerLease, error)
RenewLease(ctx context.Context, lease workercontracts.WorkerLease, ttl time.Duration) error
ReleaseLease(ctx context.Context, leaseID string) error
ListLeases(ctx context.Context) ([]workercontracts.WorkerLease, error)
AppendAssignment(ctx context.Context, workerID string, payload map[string]any) error
AppendEnvelope(ctx context.Context, envelope workercontracts.RoutedEnvelope) error
AppendEvent(ctx context.Context, payload map[string]any) error
}