Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Manifold ¶
func Manifold(config ManifoldConfig) dependency.Manifold
Manifold returns a dependency manifold that runs the changestream worker, using the resource names defined in the supplied config.
Types ¶
type ChangeStream ¶
type ChangeStream interface {
EventQueue(string) (EventQueue, error)
}
ChangeStream represents an interface for getting an event queue for a particular namespace.
type DBGetter ¶
type DBGetter = coredatabase.DBGetter
DBGetter describes the ability to supply a sql.DB reference for a particular database.
type EventQueue ¶
type EventQueue interface { // Subscribe returns a new subscription to listen to changes from the // database change log. Subscribe(...changestream.SubscriptionOption) (changestream.Subscription, error) }
EventQueue represents an interface for managing subscriptions to listen to changes from the database change log.
type EventQueueWorker ¶
type EventQueueWorker interface {
worker.Worker
EventQueue() EventQueue
}
EventQueueWorker represents a worker for subscribing to events from the database change log.
func NewEventQueueWorker ¶
func NewEventQueueWorker(db coredatabase.TrackedDB, fileNotifier FileNotifier, clock clock.Clock, logger Logger) (EventQueueWorker, error)
NewEventQueueWorker creates a new EventQueueWorker.
type EventQueueWorkerFn ¶
type EventQueueWorkerFn = func(coredatabase.TrackedDB, FileNotifier, clock.Clock, Logger) (EventQueueWorker, error)
EventQueueWorkerFn is an alias function that allows the creation of EventQueueWorker.
type FileNotifier ¶
type FileNotifier interface { // Changes returns a channel if a file was created or deleted. Changes() (<-chan bool, error) }
FileNotifier represents a way to watch for changes in a namespace folder directory.
type FileNotifyWatcher ¶
type FileNotifyWatcher = filenotifywatcher.FileNotifyWatcher
FileNotifyWatcher is the interface that the worker uses to interact with the file notify watcher.
type Logger ¶
type Logger interface { Errorf(message string, args ...interface{}) Warningf(message string, args ...interface{}) Infof(message string, args ...interface{}) Debugf(message string, args ...interface{}) Tracef(message string, args ...interface{}) IsTraceEnabled() bool }
Logger represents the logging methods called.
type ManifoldConfig ¶
type ManifoldConfig struct { DBAccessor string FileNotifyWatcher string Clock clock.Clock Logger Logger NewEventQueueWorker EventQueueWorkerFn }
ManifoldConfig defines the names of the manifolds on which a Manifold will depend.
func (ManifoldConfig) Validate ¶
func (cfg ManifoldConfig) Validate() error
type WorkerConfig ¶
type WorkerConfig struct { DBGetter DBGetter FileNotifyWatcher FileNotifyWatcher Clock clock.Clock Logger Logger NewEventQueueWorker EventQueueWorkerFn }
WorkerConfig encapsulates the configuration options for the changestream worker.
func (*WorkerConfig) Validate ¶
func (c *WorkerConfig) Validate() error
Validate ensures that the config values are valid.