Phase 3A: Site runtime foundation — Akka cluster, SQLite persistence, Deployment Manager singleton, Instance Actor
- WP-1: Site cluster config (keep-oldest SBR, down-if-alone, 2s/10s failure detection) - WP-2: Site-role host bootstrap (no Kestrel, SQLite paths) - WP-3: SiteStorageService with deployed_configurations + static_attribute_overrides tables - WP-4: DeploymentManagerActor as cluster singleton with staggered Instance Actor creation, OneForOneStrategy/Resume supervision, deploy/disable/enable/delete lifecycle - WP-5: InstanceActor with attribute state, GetAttribute/SetAttribute, SQLite override persistence - WP-6: CoordinatedShutdown verified for graceful singleton handover - WP-7: Dual-node recovery (both seed nodes, min-nr-of-members=1) - WP-8: 31 tests (storage CRUD, actor lifecycle, supervision, negative checks) 389 total tests pass, zero warnings.
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
namespace ScadaLink.Commons.Messages.Instance;
|
||||
|
||||
/// <summary>
|
||||
/// Request to get the current value of an attribute from an Instance Actor.
|
||||
/// Uses the Ask pattern for system boundaries; Tell pattern is preferred for hot-path.
|
||||
/// </summary>
|
||||
public record GetAttributeRequest(
|
||||
string CorrelationId,
|
||||
string InstanceUniqueName,
|
||||
string AttributeName,
|
||||
DateTimeOffset Timestamp);
|
||||
|
||||
/// <summary>
|
||||
/// Response containing the current value of an attribute.
|
||||
/// </summary>
|
||||
public record GetAttributeResponse(
|
||||
string CorrelationId,
|
||||
string InstanceUniqueName,
|
||||
string AttributeName,
|
||||
object? Value,
|
||||
bool Found,
|
||||
DateTimeOffset Timestamp);
|
||||
@@ -0,0 +1,23 @@
|
||||
namespace ScadaLink.Commons.Messages.Instance;
|
||||
|
||||
/// <summary>
|
||||
/// Command to set a static attribute value on an Instance Actor.
|
||||
/// Updates in-memory state and persists the override to SQLite.
|
||||
/// </summary>
|
||||
public record SetStaticAttributeCommand(
|
||||
string CorrelationId,
|
||||
string InstanceUniqueName,
|
||||
string AttributeName,
|
||||
string Value,
|
||||
DateTimeOffset Timestamp);
|
||||
|
||||
/// <summary>
|
||||
/// Response confirming that a static attribute was set.
|
||||
/// </summary>
|
||||
public record SetStaticAttributeResponse(
|
||||
string CorrelationId,
|
||||
string InstanceUniqueName,
|
||||
string AttributeName,
|
||||
bool Success,
|
||||
string? ErrorMessage,
|
||||
DateTimeOffset Timestamp);
|
||||
Reference in New Issue
Block a user