55 lines
1.0 KiB
Go
55 lines
1.0 KiB
Go
|
package main
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"go.sour.is/pkg/env"
|
||
|
"go.sour.is/pkg/lg"
|
||
|
"go.sour.is/pkg/service"
|
||
|
"go.uber.org/multierr"
|
||
|
|
||
|
"go.sour.is/ev"
|
||
|
diskstore "go.sour.is/ev/driver/disk-store"
|
||
|
memstore "go.sour.is/ev/driver/mem-store"
|
||
|
"go.sour.is/ev/driver/projecter"
|
||
|
resolvelinks "go.sour.is/ev/driver/resolve-links"
|
||
|
"go.sour.is/ev/driver/streamer"
|
||
|
"go.sour.is/ev/event"
|
||
|
gql_ev "go.sour.is/ev/gql"
|
||
|
)
|
||
|
|
||
|
var _ = apps.Register(10, func(ctx context.Context, svc *service.Harness) error {
|
||
|
ctx, span := lg.Span(ctx)
|
||
|
defer span.End()
|
||
|
|
||
|
// setup eventstore
|
||
|
err := multierr.Combine(
|
||
|
ev.Init(ctx),
|
||
|
event.Init(ctx),
|
||
|
diskstore.Init(ctx),
|
||
|
memstore.Init(ctx),
|
||
|
)
|
||
|
if err != nil {
|
||
|
span.RecordError(err)
|
||
|
return err
|
||
|
}
|
||
|
|
||
|
eventstore, err := ev.Open(
|
||
|
ctx,
|
||
|
env.Default("EV_DATA", "mem:"),
|
||
|
resolvelinks.New(),
|
||
|
streamer.New(ctx),
|
||
|
projecter.New(
|
||
|
ctx,
|
||
|
projecter.DefaultProjection,
|
||
|
),
|
||
|
)
|
||
|
if err != nil {
|
||
|
span.RecordError(err)
|
||
|
return err
|
||
|
}
|
||
|
svc.Add(eventstore, &gql_ev.EventStore{EventStore: eventstore})
|
||
|
|
||
|
return nil
|
||
|
})
|