jetstream: simplify processFunc and offload db.SaveLastTimeUs to caller
Anirudh Oppiliappan 2 weeks ago 2 files (+4, -14)
MODIFIED
appview/state/state.go
MODIFIED
appview/state/state.go
@@ -83,6 +83,7 @@ err = db.AddFollow(did, record.Subject, e.Commit.RKey)if err != nil {return fmt.Errorf("failed to add follow to db: %w", err)}+ return db.SaveLastTimeUs(e.TimeUS)}return nil
MODIFIED
jetstream/jetstream.go
MODIFIED
jetstream/jetstream.go
@@ -61,23 +61,12 @@ reconnectCh: make(chan struct{}, 1),}, nil}+// StartJetstream starts the jetstream client and processes events using the provided processFunc.+// The caller is responsible for saving the last time_us to the database (just use your db.SaveLastTimeUs).func (j *JetstreamClient) StartJetstream(ctx context.Context, processFunc func(context.Context, *models.Event) error) error {logger := log.FromContext(ctx)- pf := func(ctx context.Context, e *models.Event) error {- err := processFunc(ctx, e)- if err != nil {- return err- }-- if err := j.db.SaveLastTimeUs(e.TimeUS); err != nil {- return err- }-- return nil- }-- sched := sequential.NewScheduler(j.ident, logger, pf)+ sched := sequential.NewScheduler(j.ident, logger, processFunc)client, err := client.NewClient(j.cfg, log.New("jetstream"), sched)if err != nil {