Snapshot Agent
A snapshot agent is a process that runs on an origin system and is responsible for providing snapshots of the origin application's data on demand.
The snapshot agent connects to the Kafka snapshot request topic as a consumer to the snapshot response topic as a publisher.
When a snapshot request is received, the snapshot agent
- Unloads each of the configured data files to a portable format.
- Compresses the exported data using LZ4 compression to an LZ4 archive in an outer TAR archive.
- Uploads the TAR archive to network storage (usually an S3 bucket).
- Sends a "snapshot complete" message to the snapshot response topic.
- Deletes the local copy of the TAR archive.
The name of the TAR archive includes the current offset in the main event topic so that the exact point in the timeline of data changes the snapshot the data is associated with.
The snapshot agent for Windows and Linux is written in Rust. The snapshot agent for OpenVMS is written in VMS-C.