Callbacks

V‑Spark folders can be configured to POST processed JSON transcripts to a callback server. In the simplest case, the callback server is configured to locally save transcripts. V‑Spark can also use callbacks to write to local storage, or to send data to other applications for additional analytics or archival. Cloud-based deployments only support HTTP callbacks.

Retries

If V‑Spark cannot deliver results to a callback URL, it retries up to 100 times (by default) or for up to 10,000 hours before giving up. To avoid overloading the server and network, the callback worker waits for an increasing amount of time between retries. If the delivery ultimately fails, V‑Spark places the results that it was trying to deliver in the /var/lib/vspark/error/callback/ directory.

The number of times that callbacks are retried is configurable. The location of the error directory is also configurable.

Name collisions

Using callbacks to deliver enriched transcript (and other) files to a callback server can occasionally result in name collisions. A name collision results when files with the same name as the file that is currently being processed already exist on the callback server. This can occur when, for example, two folders have the same callback settings and files with the same name are uploaded to those folders for transcription.

V‑Spark's callback mechanism automatically resolves name collisions. Files that are delivered via callbacks automatically insert an incremental version number in file names to avoid name collisions. For example, if a file named sample.json already exists in the location where a callback writes files, the JSON file that the callback writes will be named sample.1.json. If both a file named sample.json and a file named sample.1.json already exist in the location where callbacks write files, the JSON file that the callback writes will be named sample.2.json. The number will increment until no file with a matching name is found.

Important: Callbacks that use the File system, SFTP, and AWS S3 callback delivery methods automatically avoid name collisions. Name collisions in callbacks that use the HTTP and HTTPS callback delivery methods will overwrite existing files.