Further scaffolding

This commit is contained in:
2025-11-27 20:34:34 +08:00
parent c52b2f7aa6
commit f1e5937978
28 changed files with 322 additions and 143 deletions

34
core/data/ingress.go Normal file
View File

@@ -0,0 +1,34 @@
package data
import (
"context"
"time"
"github.com/google/uuid"
)
type Ingress interface {
Name() string
Configure(cfg map[string]any) error
Connect(ctx context.Context, actions IngressActions) error
Disconnect(ctx context.Context) error
}
type IngressActions interface {
Emit(namespace string, id uuid.UUID, envelope Envelope) error
EmitBatch(namespace string, id uuid.UUID, envelopes []Envelope) error
}
type LiveIngress interface {
Subscribe(ctx context.Context, key ...string) error
Unsubscribe(ctx context.Context, key ...string) error
ListAvailableKeys(ctx context.Context) []string
IsValidKey(ctx context.Context, key string) bool
}
type HistoricalIngress interface {
Fetch(ctx context.Context, key string, start time.Time, end time.Time) ([]Envelope, error)
ListAvailableKeys(ctx context.Context) []string
IsValidKey(ctx context.Context, key string) bool
// some other method that gives the avalible time period for a key
}