Add StellaOps.Workflow engine: 14 libraries, WebService, 8 test projects
Extract product-agnostic workflow engine from Ablera.Serdica.Workflow into standalone StellaOps.Workflow.* libraries targeting net10.0. Libraries (14): - Contracts, Abstractions (compiler, decompiler, expression runtime) - Engine (execution, signaling, scheduling, projections, hosted services) - ElkSharp (generic graph layout algorithm) - Renderer.ElkSharp, Renderer.ElkJs, Renderer.Msagl, Renderer.Svg - Signaling.Redis, Signaling.OracleAq - DataStore.MongoDB, DataStore.PostgreSQL, DataStore.Oracle WebService: ASP.NET Core Minimal API with 22 endpoints Tests (8 projects, 109 tests pass): - Engine.Tests (105 pass), WebService.Tests (4 E2E pass) - Renderer.Tests, DataStore.MongoDB/Oracle/PostgreSQL.Tests - Signaling.Redis.Tests, IntegrationTests.Shared Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
125
docs/workflow/engine/13-backend-comparison-2026-03-17.json
Normal file
125
docs/workflow/engine/13-backend-comparison-2026-03-17.json
Normal file
@@ -0,0 +1,125 @@
|
||||
{
|
||||
"date": "2026-03-17",
|
||||
"type": "backend-comparison",
|
||||
"status": "baseline-decision-pack",
|
||||
"sources": {
|
||||
"oracle": "10-oracle-performance-baseline-2026-03-17.json",
|
||||
"postgres": "11-postgres-performance-baseline-2026-03-17.json",
|
||||
"mongo": "12-mongo-performance-baseline-2026-03-17.json"
|
||||
},
|
||||
"validation": {
|
||||
"integrationBuild": {
|
||||
"warnings": 0,
|
||||
"errors": 0
|
||||
},
|
||||
"oraclePerformanceSuite": "12/12",
|
||||
"postgresPerformanceSuite": "11/11",
|
||||
"mongoPerformanceSuite": "14/14",
|
||||
"postgresBackendParitySuite": "9/9",
|
||||
"mongoBackendParitySuite": "23/23"
|
||||
},
|
||||
"normalizedMetrics": {
|
||||
"signalRoundTrip": {
|
||||
"oracle": {
|
||||
"serialLatencyAvgMs": 3104.85,
|
||||
"serialLatencyP95Ms": 3165.04,
|
||||
"throughputOpsPerSecond": 20.98,
|
||||
"throughputAvgMs": 4142.13,
|
||||
"throughputP95Ms": 4215.64,
|
||||
"soakOpsPerSecond": 3.91,
|
||||
"soakAvgMs": 4494.29,
|
||||
"soakP95Ms": 5589.33
|
||||
},
|
||||
"postgres": {
|
||||
"serialLatencyAvgMs": 3079.33,
|
||||
"serialLatencyP95Ms": 3094.94,
|
||||
"throughputOpsPerSecond": 25.74,
|
||||
"throughputAvgMs": 3603.54,
|
||||
"throughputP95Ms": 3635.59,
|
||||
"soakOpsPerSecond": 4.30,
|
||||
"soakAvgMs": 4164.52,
|
||||
"soakP95Ms": 4208.42
|
||||
},
|
||||
"mongo": {
|
||||
"serialLatencyAvgMs": 97.88,
|
||||
"serialLatencyP95Ms": 149.20,
|
||||
"throughputOpsPerSecond": 76.28,
|
||||
"throughputAvgMs": 1110.94,
|
||||
"throughputP95Ms": 1121.22,
|
||||
"soakOpsPerSecond": 47.62,
|
||||
"soakAvgMs": 322.40,
|
||||
"soakP95Ms": 550.50
|
||||
}
|
||||
},
|
||||
"capacity": {
|
||||
"c1": {
|
||||
"oracle": 3.37,
|
||||
"postgres": 4.11,
|
||||
"mongo": 7.08
|
||||
},
|
||||
"c4": {
|
||||
"oracle": 15.22,
|
||||
"postgres": 17.29,
|
||||
"mongo": 38.35
|
||||
},
|
||||
"c8": {
|
||||
"oracle": 21.34,
|
||||
"postgres": 33.21,
|
||||
"mongo": 66.04
|
||||
},
|
||||
"c16": {
|
||||
"oracle": 34.03,
|
||||
"postgres": 57.04,
|
||||
"mongo": 68.65
|
||||
}
|
||||
},
|
||||
"transport": {
|
||||
"immediateBurstNightlyOpsPerSecond": {
|
||||
"oracle": 50.18,
|
||||
"postgres": 70.10,
|
||||
"mongo": 46.18
|
||||
},
|
||||
"delayedBurstNightlyOpsPerSecond": {
|
||||
"oracle": 10.71,
|
||||
"postgres": 19.60,
|
||||
"mongo": 16.66
|
||||
}
|
||||
},
|
||||
"bulstrad": {
|
||||
"quoteOrAplCancelSmokeOpsPerSecond": {
|
||||
"oracle": 19.69,
|
||||
"postgres": 59.88,
|
||||
"mongo": 23.48
|
||||
},
|
||||
"quotationConfirmConvertToPolicyNightlyOpsPerSecond": {
|
||||
"oracle": 1.77,
|
||||
"postgres": 3.33,
|
||||
"mongo": 10.83
|
||||
}
|
||||
}
|
||||
},
|
||||
"backendObservations": {
|
||||
"oracle": {
|
||||
"dominantWait": "log file sync",
|
||||
"strength": "highest validation maturity",
|
||||
"primaryPressure": "commit pressure"
|
||||
},
|
||||
"postgres": {
|
||||
"dominantWait": "Client:ClientRead",
|
||||
"strength": "best relational performance profile",
|
||||
"primaryPressure": "queue claim and wake cadence"
|
||||
},
|
||||
"mongo": {
|
||||
"dominantWait": "none-stable",
|
||||
"strength": "fastest measured synthetic throughput",
|
||||
"primaryPressure": "latency expansion from c8 to c16 and operational dependence on transactions plus change streams"
|
||||
}
|
||||
},
|
||||
"recommendation": {
|
||||
"currentPortabilityChoice": "PostgreSQL",
|
||||
"reason": "best performance-to-operability compromise with a relational model and competitive backend-native validation",
|
||||
"fastestMeasuredBackend": "MongoDB",
|
||||
"highestValidationMaturity": "Oracle",
|
||||
"caveat": "this is a baseline-level decision pack; Oracle still has the broadest hostile-condition and Bulstrad hardening surface"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user