OpenLogReplicator is essentially a program that reads redo log files created by Oracle database and translates it to JSON messages. To understand the principals it is crucial to know how Oracle database works.
Database redo logs
All changes in the database (results of DML commands like INSERT, UPDATE, DELETE) are written to database redo log. If the database redo logs contains commit record – it means that the transaction is committed to the database. Before receiving the commit record – the transaction can be still rolled back – so all changes would be undone like the transaction never happened.
OpenLogReplicator consistently reads Oracle redo log files. If possible – it would read online redo logs, but if it is behind – it can also read archived redo logs. It is crucial that it has a physical access to those files. When it is run from a remote host – access through sshfs is enough.
All transactions which are open are cached in memory. They are cache so long, how long they are open. If they are big – the program would need more memory. OpenLogReplicator never writes any additional files to disk beside checkpoint and schema file.
If you shut down OpenLogReplicator and later start again – it would need to go back to the oldest unprocessed transaction location and start reading database redo logs from this position.
The current release of OpenLogReplicator supports schema changes. The initial schema of the table(s) is read during startup of the program. Later changes to the schema are tracked.