Files
git.stella-ops.org/docs/workflow/engine/13-backend-comparison-2026-03-17.json
master f5b5f24d95 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>
2026-03-20 19:14:44 +02:00

126 lines
3.5 KiB
JSON

{
"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"
}
}