Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type CronJob ¶
type CronJob interface { // Unique identity of the cron job. Id() string // `OnInit()` is called when the cron job first-time initializes. If an error is returned, the system will halt. // When you implement `onInit`, make sure all the side effects are idempotent. For example all DB changes should be // rollbacked on error. OnInit() error // Cron Job execution interval in duration Interval() time.Duration // Execute Cron Job logic on regular interval Exec() error }
A Cron Job is a special type of projection
type Projection ¶
type Projection interface { // Unique identity of the projection. Id() string // Returns an array of event names to listen. All versions of the events will be listened. GetEventsToListen() []string // Returns the last handled event height. nil mean no event has been handled so far. GetLastHandledEventHeight() (*int64, error) // `OnInit()` is called when the projection first-time initializes (Before the first event is // handled). If an error is returned, the system will attempt to run again on next restart and // no event will be handle by this projection until this method return no error. // When you implement `onInit`, make sure all the side effects are idempotent. For example all // DB changes should be rollbacked on error. OnInit() error // Handle all events with the same height that matches `GetEventsToListen()` and create // projection. It is also responsible to update the last handled event height. HandleEvents(height int64, events []entity_event.Event) error }
Projection interface defines the necessary methods of to create a projection
type StoreBasedManager ¶
type StoreBasedManager struct {
// contains filtered or unexported fields
}
StoreBasedManager is a projection manager relies on replaying events from EventStore
func NewStoreBasedManager ¶
func NewStoreBasedManager(logger applogger.Logger, eventStore entity_event.Store) *StoreBasedManager
func (*StoreBasedManager) IsProjectionRegistered ¶
func (manager *StoreBasedManager) IsProjectionRegistered(projection Projection) bool
func (*StoreBasedManager) RegisterProjection ¶
func (manager *StoreBasedManager) RegisterProjection(projection Projection) error
func (*StoreBasedManager) RunInBackground ¶
func (manager *StoreBasedManager) RunInBackground()
Starts projectionManager by running all registered projection.
Click to show internal directories.
Click to hide internal directories.