{ "Date": "2026-03-17", "Workspace": "C:\\dev\\serdica-backend4", "TestCommand": "dotnet test src/Serdica/Ablera.Serdica.Workflow/__Tests/Ablera.Serdica.Workflow.IntegrationTests/Ablera.Serdica.Workflow.IntegrationTests.csproj -c Release --no-build --filter \"FullyQualifiedName~MongoPerformance\"", "SuiteResult": { "Passed": 14, "Total": 14, "Duration": "48 s" }, "RawArtifactDirectory": "src/Serdica/Ablera.Serdica.Workflow/__Tests/Ablera.Serdica.Workflow.IntegrationTests/bin/Release/net9.0/TestResults/workflow-performance/", "MongoEnvironment": { "DockerImage": "mongo:7.0", "Topology": "single-node replica set", "Version": "7.0.30", "Backend": "Durable collections plus change-stream wake hints" }, "MeasurementViews": { "SerialLatencyScenario": "mongo-signal-roundtrip-latency-serial", "SteadyThroughputScenario": "mongo-signal-roundtrip-throughput-parallel", "CapacityScenarioPrefix": "mongo-signal-roundtrip-capacity-" }, "Notes": { "TopWaitCounts": [ { "Name": "(none)", "Count": 14 } ], "Interpretation": [ "Serial latency baseline and steady throughput baseline are separated from the capacity ladder.", "Mongo exposed two backend-correctness issues during the first performance pass: bounded idle receive and explicit collection bootstrap.", "Mongo scales very strongly through c8 on this local replica-set baseline.", "c16 is the first visible pressure rung because latency rises materially even though throughput still improves." ] }, "Scenarios": [ { "ScenarioName": "mongo-signal-roundtrip-capacity-c1", "Tier": "WorkflowPerfCapacity", "OperationCount": 16, "Concurrency": 1, "DurationMilliseconds": 2259.99, "ThroughputPerSecond": 7.08, "AverageLatencyMilliseconds": 1394.99, "P95LatencyMilliseconds": 1576.55, "MaxLatencyMilliseconds": 2063.72, "CounterDeltas": { "opcounters.command": 183, "opcounters.insert": 48, "opcounters.update": 48, "opcounters.delete": 16, "metrics.document.returned": 80, "metrics.document.inserted": 48, "metrics.document.updated": 48, "metrics.document.deleted": 16 } }, { "ScenarioName": "mongo-signal-roundtrip-capacity-c4", "Tier": "WorkflowPerfCapacity", "OperationCount": 64, "Concurrency": 4, "DurationMilliseconds": 1668.99, "ThroughputPerSecond": 38.35, "AverageLatencyMilliseconds": 1244.81, "P95LatencyMilliseconds": 1472.61, "MaxLatencyMilliseconds": 1527.26, "CounterDeltas": { "opcounters.command": 684, "opcounters.insert": 192, "opcounters.update": 192, "opcounters.delete": 64, "metrics.document.returned": 320, "metrics.document.inserted": 192, "metrics.document.updated": 192, "metrics.document.deleted": 64 } }, { "ScenarioName": "mongo-signal-roundtrip-capacity-c8", "Tier": "WorkflowPerfCapacity", "OperationCount": 128, "Concurrency": 8, "DurationMilliseconds": 1938.12, "ThroughputPerSecond": 66.04, "AverageLatencyMilliseconds": 1477.49, "P95LatencyMilliseconds": 1743.52, "MaxLatencyMilliseconds": 1757.88, "CounterDeltas": { "opcounters.command": 1349, "opcounters.insert": 384, "opcounters.update": 384, "opcounters.delete": 128, "metrics.document.returned": 640, "metrics.document.inserted": 384, "metrics.document.updated": 384, "metrics.document.deleted": 128 } }, { "ScenarioName": "mongo-signal-roundtrip-capacity-c16", "Tier": "WorkflowPerfCapacity", "OperationCount": 256, "Concurrency": 16, "DurationMilliseconds": 3728.88, "ThroughputPerSecond": 68.65, "AverageLatencyMilliseconds": 3203.94, "P95LatencyMilliseconds": 3507.95, "MaxLatencyMilliseconds": 3527.96, "CounterDeltas": { "opcounters.command": 2515, "opcounters.insert": 768, "opcounters.update": 768, "opcounters.delete": 256, "metrics.document.returned": 1280, "metrics.document.inserted": 768, "metrics.document.updated": 768, "metrics.document.deleted": 256 } }, { "ScenarioName": "mongo-signal-roundtrip-latency-serial", "Tier": "WorkflowPerfLatency", "OperationCount": 16, "Concurrency": 1, "DurationMilliseconds": 1675.77, "ThroughputPerSecond": 9.55, "AverageLatencyMilliseconds": 97.88, "P95LatencyMilliseconds": 149.20, "MaxLatencyMilliseconds": 324.02, "PhaseLatencySummaries": { "start": { "AverageMilliseconds": 26.34, "P95Milliseconds": 79.35, "MaxMilliseconds": 251.36 }, "signalPublish": { "AverageMilliseconds": 8.17, "P95Milliseconds": 10.75, "MaxMilliseconds": 12.17 }, "signalToCompletion": { "AverageMilliseconds": 71.54, "P95Milliseconds": 77.94, "MaxMilliseconds": 79.48 } } }, { "ScenarioName": "mongo-signal-roundtrip-throughput-parallel", "Tier": "WorkflowPerfThroughput", "OperationCount": 96, "Concurrency": 16, "DurationMilliseconds": 1258.48, "ThroughputPerSecond": 76.28, "AverageLatencyMilliseconds": 1110.94, "P95LatencyMilliseconds": 1121.22, "MaxLatencyMilliseconds": 1127.11, "PhaseLatencySummaries": { "start": { "AverageMilliseconds": 20.88, "P95Milliseconds": 28.64, "MaxMilliseconds": 33.67 }, "signalPublish": { "AverageMilliseconds": 16.01, "P95Milliseconds": 20.90, "MaxMilliseconds": 22.71 }, "signalToCompletion": { "AverageMilliseconds": 988.88, "P95Milliseconds": 1000.12, "MaxMilliseconds": 1004.92 } }, "CounterDeltas": { "opcounters.command": 1049, "opcounters.insert": 288, "opcounters.update": 288, "opcounters.delete": 96, "metrics.document.returned": 480, "metrics.document.inserted": 288, "metrics.document.updated": 288, "metrics.document.deleted": 96 } }, { "ScenarioName": "mongo-signal-roundtrip-soak", "Tier": "WorkflowPerfSoak", "OperationCount": 108, "Concurrency": 8, "DurationMilliseconds": 2267.91, "ThroughputPerSecond": 47.62, "AverageLatencyMilliseconds": 322.40, "P95LatencyMilliseconds": 550.50, "MaxLatencyMilliseconds": 572.73, "CounterDeltas": { "opcounters.command": 2264, "opcounters.insert": 324, "opcounters.update": 324, "opcounters.delete": 108, "metrics.document.returned": 540, "metrics.document.inserted": 324, "metrics.document.updated": 324, "metrics.document.deleted": 108, "transactions.totalStarted": 216, "transactions.totalCommitted": 216 } } ] }