code: func (m *Manager) Start(ctx context.Context) error {
  	if m == nil {
  		return nil
  	}
  
  	err := storage.Txn(ctx, m.Store, storage.TransactionParams{}, func(txn storage.Transaction) error {
  		compiler, err := loadCompilerFromStore(ctx, m.Store, txn)
  		if err != nil {
  			return err
  		}
  		m.setCompiler(compiler)
  		return nil
  	})
  
  	if err != nil {
  		return err
  	}
  
  	if err := func() error {
  		m.mtx.Lock()
  		defer m.mtx.Unlock()
  
  		for _, p := range m.plugins {
  			if err := p.plugin.Start(ctx); err != nil {
  				return err
  			}
  		}
  
  		return nil
  	}(); err != nil {
  		return err
  	}
  
  	config := storage.TriggerConfig{OnCommit: m.onCommit}
  
  	return storage.Txn(ctx, m.Store, storage.WriteParams, func(txn storage.Transaction) error {
  		_, err := m.Store.Register(ctx, txn, config)
  		return err
  	})
  }
docs: // Start starts the manager.