Go daemon that syncs MongoDB to ElasticSearch & OpenSearch in realtime.
This fork provides a simple framework to build and run a custom Monstache container.
Monstache
Monstache Documentation
This version of Monstache is designed for:
- MongoDB 3.6+
- Elasticsearch 7.0+
- OpenSearch 2.0+
It uses the official MongoDB Golang driver, and the community supported Elasticsearch driver.
To simplify the process of building plugins, this project provides a new configuration option:
mapper-plugin-path = "local"
This option allows you to build plugins alongside the Monstache container.
Elimating the need for dynamic loading improves plugin compatibilty and performance.
Plugins support the following functions:
func Map(input *monstachemap.MapperPluginInput) (output *monstachemap.MapperPluginOutput, err error)
func Filter(input *monstachemap.MapperPluginInput) (keep bool, err error)
func Pipeline(ns string, changeStream bool) (stages []interface, err error)
func Process(input*monstachemap.ProcessPluginInput) error
All plugin options are documented in monstache/plugin/plugin.go
.
Compiling plugins is still supported, you can follow the instructions from Monstache as reference: