OverviewArchitectureRecipeSourceProcessorSinkContext Graph for AI
OverviewArchitectureRecipeSourceProcessorSinkContext Graph for AI

Adding Plugins

New plugins are the most common contribution to Meteor. This page is the short checklist for each plugin type; the extractor tutorial walks through the full process with code.

Adding a new extractor

  • Follow the write an extractor tutorial for the package layout, interfaces, and registration.
  • Register your extractor in plugins/extractors/populate.go.
  • Write unit tests. Run them with make test-plugins PLUGIN=extractors/<name>.
  • Write a README.md in the plugin directory (example).
  • Add a docs page under docs/content/docs/extractors/ and a row to the overview table.

Adding a new processor

  • Implement Process(ctx, record) (record, error) and embed plugins.BasePlugin.
  • Register your processor in plugins/processors/populate.go.
  • Write unit tests. If you need a live source, use the Docker test utility in test/utils (example).
  • Write a README.md and add a docs page under docs/content/docs/processors/.

Adding a new sink

  • Implement Sink(ctx, batch []models.Record) error and Close() error, and embed plugins.BasePlugin.
  • Return plugins.NewRetryError for errors Meteor should retry, such as HTTP 5xx responses.
  • Register your sink in plugins/sinks/populate.go.
  • Write unit tests.
  • Write a README.md and add a docs page under docs/content/docs/sinks/.
ContributingWrite an Extractor
On this page
Adding a new extractorAdding a new processorAdding a new sink