17namespace neograph::program {
19enum class ProgramEventKind : std::uint8_t {
28NEOGRAPH_PROGRAM_API std::string_view to_string(ProgramEventKind kind)
noexcept;
29NEOGRAPH_PROGRAM_API ProgramEventKind program_event_kind_from_string(std::string_view value);
31struct ProgramStartedEvent {
33 bool operator==(
const ProgramStartedEvent&)
const =
default;
36struct ProgramEmitEvent {
37 std::string operation_id;
39 bool operator==(
const ProgramEmitEvent&)
const =
default;
42struct ProgramCheckpointEvent {
43 CoreCheckpointIdentity checkpoint;
44 bool operator==(
const ProgramCheckpointEvent&)
const =
default;
47struct ProgramTerminalEvent {
48 ProgramTerminalStatus status;
49 bool operator==(
const ProgramTerminalEvent&)
const =
default;
54 std::string operation_kind;
55 std::string input_digest;
59using ProgramEventPayload = std::variant<ProgramStartedEvent,
60 graph::TypedGraphEvent,
62 ProgramCheckpointEvent,
66struct NEOGRAPH_PROGRAM_API ProgramEvent {
67 static constexpr std::uint32_t STORAGE_SCHEMA_VERSION = 2;
70 std::uint64_t sequence;
71 std::int64_t timestamp_ms;
73 std::string program_version_id;
74 std::string bundle_id;
75 std::string operation_id;
76 std::string core_generation_id;
77 std::string core_run_id;
79 std::uint64_t attempt;
80 ProgramEventKind kind;
81 ProgramEventPayload payload;
82 static ProgramEvent create(ProgramEvent value);
83 static ProgramEvent parse(std::string_view stored_bytes);
84 std::string serialize_canonical()
const;
87class NEOGRAPH_PROGRAM_API ProgramEventSink {
89 virtual ~ProgramEventSink() =
default;
90 virtual void on_event(
const ProgramEvent& event) = 0;
NEOGRAPH_API export/import macro for shared-library builds.
Graph engine type definitions: channels, edges, nodes, events, and control flow.
Immutable outcome of one Program run attempt.
Compiled-runtime operation coordinate, never a user ng.emit permission.