Lifecycle functionality (Fallback SDK)#

Our SDKs allow indicating when certain milestones in program setup and execution have been reached. If you cannot use the SDK, you can still indicate these milestones by writing JSON documents to $ANTITHESIS_OUTPUT_DIR/sdk.json.

Important

JSON examples in this section are formatted into multiple lines for readability. However, the Antithesis environment is different: SDK messages are line-delimited and each individual message must be contained within a single line.

Setup#

Setup indicates to Antithesis that your system and workload are fully initialized.

To use this functionality, have your program emit the following JSON once startup is complete:

{"antithesis_setup": { "status": "complete", "details": null }}

The item details may be any JSON that you wish to log at startup time. If you do not want to record additional information, it may be set to null as above. The following setup example logs additional information by setting details:

{"antithesis_setup": { "status": "complete", "details": {"workload-size": 37, "initiated_by": "John Doe" }}}

Event#

Event indicates to Antithesis that a certain event has been reached. It provides greater information about the ordering of events during the course of testing in Antithesis. It is a JSON document consisting of:

  • a single top-level field that is the event’s name, which points to

  • an arbitrary JSON document that contains any details you want to log.

To use this functionality, have your program emit a JSON similar to the following once the event has been reached:

{
    "your_event_name": {
        "node_status": "up",
        "nodes_up": ["worker 1", "worker 2", "worker 3"]
    }
}