25 lines
1.3 KiB
Go
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
|
|
}
|