CouchDB CouchWatcher

The CouchDB change watcher monitors CouchDB server and reacts to certain data events:

  • New records being created trigger Solr re-indexing

  • Changes to the forms metadata trigger rebuilding of the Rails mapping objects that interface with CouchDB and Solr

  • Detects and resolves record conflicts generated by bulk updates or CouchDB-to-CouchDB syncs and stored in CouchDB.

The Change Watcher is Ruby on Rails process running on an EventMachine (https://github.com/eventmachine/eventmachine). It is launched by Supervisor. When a new configuration bundle is applied, the Couch Watcher is restarted.

Start $ sudo supervisorctl start couch-watcher
Stop $ sudo supervisorctl stop couch-watcher
Status $ sudo supervisorctl status couch-watcher
couch-watcher RUNNING pid 11497, uptime 11:07:36

`$ ps -fA \
grep couch_changes`
primero 11587 11497 0 05:02 ? 00:00:06 lib/couch_changes/base.rb
History file /srv/primero/application/tmp/couch_watcher_history.json
Log Files /srv/primero/logs/couch_watcher/output.log/srv/primero/logs/couch_watcher/production.log
Run User root, primero