Server-side scenario execution: effects client replaces local engine

- client.Effects: typed effects + completion methods posting scenario callbacks
- client.Scenario reduced to TriggerAsync
- pending polling via Update() pump: 30s heartbeat + wait-deadline checks
- local engine, plan persistence (IPlanStateStore) and resume removed
- RealtimeService and realtime transports removed (relay never deployed)
- dead IPlanScheduler leftover removed
- models regenerated from openapi (ExecutionPlan/BoundaryNode gone, PendingEffect added)
This commit is contained in:
edmand46
2026-09-04 14:03:41 +03:00
parent 05dd30f31d
commit 6c590ca520
52 changed files with 1304 additions and 2040 deletions
-30
View File
@@ -1,30 +0,0 @@
// Code generated by apigen. DO NOT EDIT.
using Newtonsoft.Json;
using System;
namespace RudderSdk.Core.Models;
public class BoundaryNode
{
[JsonProperty("callbackUrl")]
public string? CallbackUrl { get; set; }
[JsonProperty("enforcement")]
public string? Enforcement { get; set; }
[JsonProperty("enteredAt")]
public DateTimeOffset? EnteredAt { get; set; }
[JsonProperty("nodeId")]
public string? NodeId { get; set; }
[JsonProperty("sourceHandle")]
public string? SourceHandle { get; set; }
[JsonProperty("sourceNodeId")]
public string? SourceNodeId { get; set; }
[JsonProperty("waitDeadline")]
public DateTimeOffset? WaitDeadline { get; set; }
}
-37
View File
@@ -1,37 +0,0 @@
// Code generated by apigen. DO NOT EDIT.
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System.Collections.Generic;
namespace RudderSdk.Core.Models;
public class ExecutionPlan
{
[JsonProperty("boundaryNodes")]
public List<BoundaryNode>? BoundaryNodes { get; set; }
[JsonProperty("context")]
public JToken? Context { get; set; }
[JsonProperty("edges")]
public List<PlanEdge>? Edges { get; set; }
[JsonProperty("nodes")]
public List<ExecutionPlanNode>? Nodes { get; set; }
[JsonProperty("planId")]
public string? PlanId { get; set; }
[JsonProperty("runId")]
public string? RunId { get; set; }
[JsonProperty("scenarioId")]
public string? ScenarioId { get; set; }
[JsonProperty("startNodeId")]
public string? StartNodeId { get; set; }
[JsonProperty("userId")]
public string? UserId { get; set; }
}
-18
View File
@@ -1,18 +0,0 @@
// Code generated by apigen. DO NOT EDIT.
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace RudderSdk.Core.Models;
public class ExecutionPlanNode
{
[JsonProperty("data")]
public JToken? Data { get; set; }
[JsonProperty("id")]
public string? Id { get; set; }
[JsonProperty("type")]
public string? Type { get; set; }
}
-23
View File
@@ -1,23 +0,0 @@
// Code generated by apigen. DO NOT EDIT.
using Newtonsoft.Json;
namespace RudderSdk.Core.Models;
public class PlanEdge
{
[JsonProperty("id")]
public string? Id { get; set; }
[JsonProperty("source")]
public string? Source { get; set; }
[JsonProperty("sourceHandle")]
public string? SourceHandle { get; set; }
[JsonProperty("target")]
public string? Target { get; set; }
[JsonProperty("targetHandle")]
public string? TargetHandle { get; set; }
}