code: func (m *manager) Start() {
  	dec := json.NewDecoder(m.Reader)
  	enc := json.NewEncoder(m.Writer)
  
  	for {
  		var msg input
  		err := dec.Decode(&msg)
  
  		if err == io.EOF {
  			break
  		}
  
  		if err != nil {
  			log.Printf("error decoding input: %s", err)
  			break
  		}
  
  		v, err := m.Handler.Handle(msg.Event, msg.Context)
  		out := output{ID: msg.ID, Value: v}
  
  		if err != nil {
  			out.Error = err.Error()
  		}
  
  		if err := enc.Encode(out); err != nil {
  			log.Printf("error encoding output: %s", err)
  		}
  	}
  }
docs: // Start the manager.