Skip to content

feat(#653): Phase 3 — tombstone platform/providers/aws/ + promote eks CI gate#662

Merged
intel352 merged 8 commits into
mainfrom
feat/issue-653-phase3-aws-drivers
May 13, 2026
Merged

feat(#653): Phase 3 — tombstone platform/providers/aws/ + promote eks CI gate#662
intel352 merged 8 commits into
mainfrom
feat/issue-653-phase3-aws-drivers

Conversation

@intel352

Copy link
Copy Markdown
Contributor

Summary

  • Delete all 24 files in platform/providers/aws/ (build-tag-gated //go:build aws, zero external callers, no CI coverage, ~2,000 LOC of dead code)
  • Remove 5 exclusive AWS SDK packages from go.mod: ec2, dynamodb, elasticloadbalancingv2, rds, sqs
  • Promote Phase 2 CI gate placeholder: service/eks now strictly banned outside provider/ (ECS/EKS deploy pipeline)
  • Add three-layer provider architecture doc comment to platform/provider.go + ADR-0032

Design

See: docs/plans/2026-05-13-issue-653-phase3-aws-drivers-design.md

Implementation Plan

See: docs/plans/2026-05-13-issue-653-phase3-aws-drivers.md

Scope Manifest

PR Count: 1
Tasks: 4
Status: Locked 2026-05-13T18:30:00Z

PR # Title Tasks Branch
1 feat(#653): Phase 3 — tombstone platform/providers/aws/ + promote eks CI gate Task 1, Task 2, Task 3, Task 4 feat/issue-653-phase3-aws-drivers

Changes

Task 1 — Delete platform/providers/aws/ + absent-package gate (commit 835480a)

  • Deleted all 24 files in platform/providers/aws/ and platform/providers/aws/drivers/
  • Extended module/aws_absent_test.go to assert ec2, dynamodb, elasticloadbalancingv2, rds, sqs are absent from module/
  • go build ./... and go test ./platform/... green after deletion

Task 2 — go mod tidy removes 5 exclusive AWS SDK deps (commit 5475f4d)

  • Ran go mod tidy: ec2, dynamodb, elasticloadbalancingv2, rds, sqs removed from go.mod
  • eks, iam, s3, sts stay (live callers: provider/aws/, iam/aws.go, plugin/rbac/aws.go, etc.)
  • Full build + test suite green

Task 3 — Promote service/eks CI gate (commit f80030e)

  • Removed --exclude-dir=platform from eks grep gate (platform/providers/aws/ no longer exists)
  • Added ec2, dynamodb, elasticloadbalancingv2, rds, sqs to strict grep gate and go.mod gate
  • Added --exclude="nosql_dynamodb.go" to avoid false positive on doc comment (line 13 is a godoc comment, not an import)
  • All three CI gates verified against git-tracked tree

Task 4 — Three-layer provider architecture doc + ADR-0032 (commit 940066b)

Prior phases

Test Notes

Two pre-existing test failures on cmd/wfctl (TestInfraMultiEnv_E2E — missing DO plugin binary, TestFallbackRuns) exist on origin/main and are unrelated to Phase 3 changes. Verified by running the same test suite against origin/main before any Phase 3 code was applied.

🤖 Generated with Claude Code

intel352 and others added 8 commits May 13, 2026 13:28
…tone

Consumer trace confirms platform/providers/aws/ is build-tag-gated dead
code (//go:build aws, zero external callers, no CI coverage). Disposition
(b) with action: document the three-layer provider architecture, then delete
the dead AWS implementation. platform.Provider interface and DockerCompose/
Mock implementations are unchanged.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Clarify CI gate task: promote service/eks to strict ban step + go.mod
  gate (Phase 2 ci.yml:418 hands this off explicitly); list packages
  exclusive to deleted tree (ec2/dynamodb/elb/rds/sqs/iam) for banning
- Fix Assumption 4+5: eks stays in go.mod (provider/aws/ uses it); only
  packages exclusively in the build-tag-gated tree can be banned
- Correct ADR number 0020 → 0032 (latest is 0031)
- Drop legacyaws scope item (package catalogs YAML types, not Go packages)
- Drop DOCUMENTATION.md item (platform/provider.go doc comment is canonical)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ver tombstone

4 tasks: T1 delete 24 files, T2 go mod tidy (5 exclusive AWS SDK deps),
T3 promote service/eks CI gate from lenient to strict + add ec2/dynamodb/
elb/rds/sqs to banned list, T4 three-layer provider architecture doc +
ADR-0032. Single PR on feat/issue-653-phase3-aws-drivers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 17:55

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR completes Issue #653 Phase 3 by tombstoning the unused, aws-build-tag-gated platform/providers/aws implementation, tightening CI guards to prevent removed AWS SDK service packages from re-entering the core repo, and documenting the repo’s three distinct “provider” abstractions.

Changes:

  • Deleted the entire platform/providers/aws/ provider + drivers implementation (and its unit tests).
  • Removed now-unused AWS SDK v2 service dependencies from go.mod/go.sum and extended the module-level “absent package” regression test.
  • Promoted/updated the CI “aws-sdk-banned” gate and added provider-architecture documentation + ADR/plan docs.

Reviewed changes

Copilot reviewed 32 out of 33 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
.github/workflows/ci.yml Updates the aws-sdk-banned grep/go.mod gates and tightens service/eks enforcement to only allow usage under provider/.
decisions/0032-platform-provider-aws-tombstone.md Adds ADR-0032 documenting the decision to remove the dead platform/providers/aws tree.
docs/plans/2026-05-13-issue-653-phase3-aws-drivers.md Adds the Phase 3 implementation plan documentation (with scope-lock).
docs/plans/2026-05-13-issue-653-phase3-aws-drivers.md.scope-lock Adds the plan scope-lock hash.
docs/plans/2026-05-13-issue-653-phase3-aws-drivers-design.md Adds Phase 3 design notes / disposition analysis for the deleted AWS platform provider tree.
go.mod Removes unused AWS SDK service deps (ec2/dynamodb/elasticloadbalancingv2/rds/sqs) and related indirects after deletion.
go.sum Drops checksums for removed dependencies after go mod tidy.
module/aws_absent_test.go Extends the “AWS service packages absent from module/” regression gate to include newly freed packages.
platform/provider.go Adds a GoDoc explanation of the three-layer provider architecture and where AWS now belongs.
platform/providers/aws/aws_config.go Deleted: aws-tag-gated AWS SDK config alias used only by the removed platform AWS provider.
platform/providers/aws/capability_mapper.go Deleted: aws-tag-gated capability-to-resource mapping for the removed platform AWS provider.
platform/providers/aws/credential_broker.go Deleted: aws-tag-gated STS-based credential broker for the removed platform AWS provider.
platform/providers/aws/credential_broker_test.go Deleted: tests for the removed credential broker.
platform/providers/aws/driver_factories.go Deleted: factory bridge between provider and drivers subpackage for the removed platform AWS provider.
platform/providers/aws/provider.go Deleted: aws-tag-gated platform.Provider AWS implementation.
platform/providers/aws/provider_test.go Deleted: tests for the removed AWSProvider.
platform/providers/aws/state_store.go Deleted: aws-tag-gated S3/DynamoDB state store implementation.
platform/providers/aws/state_store_test.go Deleted: tests for the removed state store.
platform/providers/aws/drivers/alb.go Deleted: aws-tag-gated ALB resource driver.
platform/providers/aws/drivers/alb_test.go Deleted: tests for the removed ALB driver.
platform/providers/aws/drivers/eks_cluster.go Deleted: aws-tag-gated EKS cluster driver.
platform/providers/aws/drivers/eks_cluster_test.go Deleted: tests for the removed EKS cluster driver.
platform/providers/aws/drivers/eks_nodegroup.go Deleted: aws-tag-gated EKS nodegroup driver.
platform/providers/aws/drivers/eks_nodegroup_test.go Deleted: tests for the removed EKS nodegroup driver.
platform/providers/aws/drivers/helpers.go Deleted: helper utilities (diff/int/bool/string slice helpers) used by removed drivers.
platform/providers/aws/drivers/iam.go Deleted: aws-tag-gated IAM role driver.
platform/providers/aws/drivers/iam_test.go Deleted: tests for the removed IAM driver.
platform/providers/aws/drivers/rds.go Deleted: aws-tag-gated RDS driver.
platform/providers/aws/drivers/rds_test.go Deleted: tests for the removed RDS driver.
platform/providers/aws/drivers/sqs.go Deleted: aws-tag-gated SQS driver.
platform/providers/aws/drivers/sqs_test.go Deleted: tests for the removed SQS driver.
platform/providers/aws/drivers/vpc.go Deleted: aws-tag-gated VPC driver.
platform/providers/aws/drivers/vpc_test.go Deleted: tests for the removed VPC driver.
Comments suppressed due to low confidence (2)

docs/plans/2026-05-13-issue-653-phase3-aws-drivers-design.md:150

  • This bullet lists service/iam as “exclusive to the deleted tree” / safe to ban, but aws-sdk-go-v2/service/iam is still imported by iam/aws.go and plugin/rbac/aws.go in core. Update the list to remove service/iam (and any related wording) so it matches the current repo reality.
- Promote `service/eks` CI gate: move from lenient-allowed-in-platform step to strict ban step + go.mod gate (Phase 2 CI comment at ci.yml:417–418 hands this off to Phase 3)
- Add banned packages exclusive to the deleted tree: `service/ec2`, `service/dynamodb`, `service/elasticloadbalancingv2`, `service/rds`, `service/sqs`, `service/iam` — these are not present in `provider/aws/` or anywhere else

docs/plans/2026-05-13-issue-653-phase3-aws-drivers-design.md:166

  • Assumption #4 states service/iam is only used by the build-tag-gated platform/providers/aws tree and implies it can be removed from go.mod/go.sum, but core still imports aws-sdk-go-v2/service/iam (iam/aws.go, plugin/rbac/aws.go). Please correct this assumption (and any downstream conclusions) to avoid suggesting an unsafe dependency removal/ban.
3. **`platform.Provider` interface is preserved** — confirmed: `DockerComposeProvider` and the pipeline step consumers remain.
4. **AWS SDK packages exclusive to this tree are not in go.mod/go.sum** — `ec2`, `dynamodb`, `elasticloadbalancingv2`, `rds`, `sqs`, `iam` are only used by the build-tag-gated `platform/providers/aws/` tree. `service/eks` IS in go.mod because `provider/aws/plugin.go` (no build tag) uses it; it must not be removed from go.mod in Phase 3 since `provider/aws/` is kept. `service/s3` also needs verification: check if it appears outside this tree.
5. **`service/eks` promotion is safe** — after `platform/providers/aws/drivers/eks_cluster.go` and `eks_nodegroup.go` are deleted, the only remaining callers of `service/eks` are in `provider/aws/` (deploy pipeline). The Phase 2 CI gate correctly anticipates this: the lenient step (`--exclude-dir=platform`) can be tightened to remove the `--exclude-dir=platform` exclusion, because the only remaining legitimate `eks` caller (`provider/aws/`) is still excluded by `--exclude-dir=provider`.

Comment thread .github/workflows/ci.yml
Comment thread docs/plans/2026-05-13-issue-653-phase3-aws-drivers.md
Comment thread docs/plans/2026-05-13-issue-653-phase3-aws-drivers-design.md
@codecov

codecov Bot commented May 13, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions

Copy link
Copy Markdown

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:264: parsing iteration count: invalid syntax
baseline-bench.txt:292471: parsing iteration count: invalid syntax
baseline-bench.txt:577532: parsing iteration count: invalid syntax
baseline-bench.txt:852081: parsing iteration count: invalid syntax
baseline-bench.txt:1182517: parsing iteration count: invalid syntax
baseline-bench.txt:1454660: parsing iteration count: invalid syntax
benchmark-results.txt:264: parsing iteration count: invalid syntax
benchmark-results.txt:295081: parsing iteration count: invalid syntax
benchmark-results.txt:619208: parsing iteration count: invalid syntax
benchmark-results.txt:939234: parsing iteration count: invalid syntax
benchmark-results.txt:1220722: parsing iteration count: invalid syntax
benchmark-results.txt:1541036: parsing iteration count: invalid syntax
goos: linux
goarch: amd64
pkg: github.com/GoCodeAlone/workflow/dynamic
cpu: AMD EPYC 7763 64-Core Processor                
                            │ baseline-bench.txt │
                            │       sec/op       │
InterpreterCreation-4               5.222m ± 88%
ComponentLoad-4                     3.602m ±  1%
ComponentExecute-4                  1.919µ ±  1%
PoolContention/workers-1-4          1.145µ ±  6%
PoolContention/workers-2-4          1.083µ ±  1%
PoolContention/workers-4-4          1.090µ ±  3%
PoolContention/workers-8-4          1.090µ ±  1%
PoolContention/workers-16-4         1.089µ ±  1%
ComponentLifecycle-4                3.625m ±  1%
SourceValidation-4                  2.322µ ±  1%
RegistryConcurrent-4                827.3n ±  3%
LoaderLoadFromString-4              3.615m ±  1%
geomean                             18.35µ

                            │ baseline-bench.txt │
                            │        B/op        │
InterpreterCreation-4               2.027Mi ± 0%
ComponentLoad-4                     2.180Mi ± 0%
ComponentExecute-4                  1.203Ki ± 0%
PoolContention/workers-1-4          1.203Ki ± 0%
PoolContention/workers-2-4          1.203Ki ± 0%
PoolContention/workers-4-4          1.203Ki ± 0%
PoolContention/workers-8-4          1.203Ki ± 0%
PoolContention/workers-16-4         1.203Ki ± 0%
ComponentLifecycle-4                2.183Mi ± 0%
SourceValidation-4                  1.984Ki ± 0%
RegistryConcurrent-4                1.133Ki ± 0%
LoaderLoadFromString-4              2.182Mi ± 0%
geomean                             15.25Ki

                            │ baseline-bench.txt │
                            │     allocs/op      │
InterpreterCreation-4                15.68k ± 0%
ComponentLoad-4                      18.02k ± 0%
ComponentExecute-4                    25.00 ± 0%
PoolContention/workers-1-4            25.00 ± 0%
PoolContention/workers-2-4            25.00 ± 0%
PoolContention/workers-4-4            25.00 ± 0%
PoolContention/workers-8-4            25.00 ± 0%
PoolContention/workers-16-4           25.00 ± 0%
ComponentLifecycle-4                 18.07k ± 0%
SourceValidation-4                    32.00 ± 0%
RegistryConcurrent-4                  2.000 ± 0%
LoaderLoadFromString-4               18.06k ± 0%
geomean                               183.3

cpu: AMD EPYC 9V74 80-Core Processor                
                            │ benchmark-results.txt │
                            │        sec/op         │
InterpreterCreation-4                  5.004m ± 64%
ComponentLoad-4                        3.512m ±  1%
ComponentExecute-4                     1.844µ ±  1%
PoolContention/workers-1-4             1.029µ ±  1%
PoolContention/workers-2-4             1.017µ ±  2%
PoolContention/workers-4-4             1.025µ ±  2%
PoolContention/workers-8-4             1.032µ ±  1%
PoolContention/workers-16-4            1.032µ ±  2%
ComponentLifecycle-4                   3.635m ±  3%
SourceValidation-4                     2.150µ ±  2%
RegistryConcurrent-4                   785.9n ±  3%
LoaderLoadFromString-4                 3.686m ±  2%
geomean                                17.52µ

                            │ benchmark-results.txt │
                            │         B/op          │
InterpreterCreation-4                  2.027Mi ± 0%
ComponentLoad-4                        2.180Mi ± 0%
ComponentExecute-4                     1.203Ki ± 0%
PoolContention/workers-1-4             1.203Ki ± 0%
PoolContention/workers-2-4             1.203Ki ± 0%
PoolContention/workers-4-4             1.203Ki ± 0%
PoolContention/workers-8-4             1.203Ki ± 0%
PoolContention/workers-16-4            1.203Ki ± 0%
ComponentLifecycle-4                   2.183Mi ± 0%
SourceValidation-4                     1.984Ki ± 0%
RegistryConcurrent-4                   1.133Ki ± 0%
LoaderLoadFromString-4                 2.182Mi ± 0%
geomean                                15.25Ki

                            │ benchmark-results.txt │
                            │       allocs/op       │
InterpreterCreation-4                   15.68k ± 0%
ComponentLoad-4                         18.02k ± 0%
ComponentExecute-4                       25.00 ± 0%
PoolContention/workers-1-4               25.00 ± 0%
PoolContention/workers-2-4               25.00 ± 0%
PoolContention/workers-4-4               25.00 ± 0%
PoolContention/workers-8-4               25.00 ± 0%
PoolContention/workers-16-4              25.00 ± 0%
ComponentLifecycle-4                    18.07k ± 0%
SourceValidation-4                       32.00 ± 0%
RegistryConcurrent-4                     2.000 ± 0%
LoaderLoadFromString-4                  18.06k ± 0%
geomean                                  183.3

pkg: github.com/GoCodeAlone/workflow/middleware
cpu: AMD EPYC 7763 64-Core Processor                
                                  │ baseline-bench.txt │
                                  │       sec/op       │
CircuitBreakerDetection-4                  286.4n ± 9%
CircuitBreakerExecution_Success-4          21.53n ± 1%
CircuitBreakerExecution_Failure-4          66.38n ± 0%
geomean                                    74.25n

                                  │ baseline-bench.txt │
                                  │        B/op        │
CircuitBreakerDetection-4                 144.0 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │
                                  │     allocs/op      │
CircuitBreakerDetection-4                 1.000 ± 0%
CircuitBreakerExecution_Success-4         0.000 ± 0%
CircuitBreakerExecution_Failure-4         0.000 ± 0%
geomean                                              ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                  │ benchmark-results.txt │
                                  │        sec/op         │
CircuitBreakerDetection-4                    298.1n ± 14%
CircuitBreakerExecution_Success-4            22.67n ±  0%
CircuitBreakerExecution_Failure-4            71.03n ±  0%
geomean                                      78.29n

                                  │ benchmark-results.txt │
                                  │         B/op          │
CircuitBreakerDetection-4                    144.0 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

                                  │ benchmark-results.txt │
                                  │       allocs/op       │
CircuitBreakerDetection-4                    1.000 ± 0%
CircuitBreakerExecution_Success-4            0.000 ± 0%
CircuitBreakerExecution_Failure-4            0.000 ± 0%
geomean                                                 ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
cpu: AMD EPYC 7763 64-Core Processor                
                                 │ baseline-bench.txt │
                                 │       sec/op       │
JQTransform_Simple-4                     862.4n ± 32%
JQTransform_ObjectConstruction-4         1.432µ ±  1%
JQTransform_ArraySelect-4                3.287µ ±  1%
JQTransform_Complex-4                    37.89µ ±  1%
JQTransform_Throughput-4                 1.741µ ±  0%
SSEPublishDelivery-4                     63.44n ±  1%
geomean                                  1.603µ

                                 │ baseline-bench.txt │
                                 │        B/op        │
JQTransform_Simple-4                   1.273Ki ± 0%
JQTransform_ObjectConstruction-4       1.773Ki ± 0%
JQTransform_ArraySelect-4              2.625Ki ± 0%
JQTransform_Complex-4                  16.22Ki ± 0%
JQTransform_Throughput-4               1.984Ki ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │
                                 │     allocs/op      │
JQTransform_Simple-4                     10.00 ± 0%
JQTransform_ObjectConstruction-4         15.00 ± 0%
JQTransform_ArraySelect-4                30.00 ± 0%
JQTransform_Complex-4                    324.0 ± 0%
JQTransform_Throughput-4                 17.00 ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                 │ benchmark-results.txt │
                                 │        sec/op         │
JQTransform_Simple-4                        849.8n ± 31%
JQTransform_ObjectConstruction-4            1.411µ ±  1%
JQTransform_ArraySelect-4                   3.528µ ±  1%
JQTransform_Complex-4                       42.26µ ±  1%
JQTransform_Throughput-4                    1.765µ ±  3%
SSEPublishDelivery-4                        63.05n ±  1%
geomean                                     1.646µ

                                 │ benchmark-results.txt │
                                 │         B/op          │
JQTransform_Simple-4                      1.273Ki ± 0%
JQTransform_ObjectConstruction-4          1.773Ki ± 0%
JQTransform_ArraySelect-4                 2.625Ki ± 0%
JQTransform_Complex-4                     16.22Ki ± 0%
JQTransform_Throughput-4                  1.984Ki ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                 │ benchmark-results.txt │
                                 │       allocs/op       │
JQTransform_Simple-4                        10.00 ± 0%
JQTransform_ObjectConstruction-4            15.00 ± 0%
JQTransform_ArraySelect-4                   30.00 ± 0%
JQTransform_Complex-4                       324.0 ± 0%
JQTransform_Throughput-4                    17.00 ± 0%
SSEPublishDelivery-4                        0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
cpu: AMD EPYC 7763 64-Core Processor                
                                    │ baseline-bench.txt │
                                    │       sec/op       │
SchemaValidation_Simple-4                   1.111µ ± 15%
SchemaValidation_AllFields-4                1.663µ ±  1%
SchemaValidation_FormatValidation-4         1.594µ ±  2%
SchemaValidation_ManySchemas-4              1.842µ ±  2%
geomean                                     1.526µ

                                    │ baseline-bench.txt │
                                    │        B/op        │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │
                                    │     allocs/op      │
SchemaValidation_Simple-4                   0.000 ± 0%
SchemaValidation_AllFields-4                0.000 ± 0%
SchemaValidation_FormatValidation-4         0.000 ± 0%
SchemaValidation_ManySchemas-4              0.000 ± 0%
geomean                                                ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V74 80-Core Processor                
                                    │ benchmark-results.txt │
                                    │        sec/op         │
SchemaValidation_Simple-4                       1.095µ ± 8%
SchemaValidation_AllFields-4                    1.641µ ± 2%
SchemaValidation_FormatValidation-4             1.579µ ± 2%
SchemaValidation_ManySchemas-4                  1.605µ ± 1%
geomean                                         1.461µ

                                    │ benchmark-results.txt │
                                    │         B/op          │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

                                    │ benchmark-results.txt │
                                    │       allocs/op       │
SchemaValidation_Simple-4                      0.000 ± 0%
SchemaValidation_AllFields-4                   0.000 ± 0%
SchemaValidation_FormatValidation-4            0.000 ± 0%
SchemaValidation_ManySchemas-4                 0.000 ± 0%
geomean                                                   ¹
¹ summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
cpu: AMD EPYC 7763 64-Core Processor                
                                   │ baseline-bench.txt │
                                   │       sec/op       │
EventStoreAppend_InMemory-4                1.270µ ± 12%
EventStoreAppend_SQLite-4                  1.334m ±  6%
GetTimeline_InMemory/events-10-4           13.53µ ±  2%
GetTimeline_InMemory/events-50-4           76.07µ ± 21%
GetTimeline_InMemory/events-100-4          120.8µ ±  1%
GetTimeline_InMemory/events-500-4          622.7µ ±  2%
GetTimeline_InMemory/events-1000-4         1.272m ±  1%
GetTimeline_SQLite/events-10-4             105.4µ ±  1%
GetTimeline_SQLite/events-50-4             245.3µ ±  0%
GetTimeline_SQLite/events-100-4            414.7µ ±  1%
GetTimeline_SQLite/events-500-4            1.767m ±  0%
GetTimeline_SQLite/events-1000-4           3.454m ±  2%
geomean                                    217.0µ

                                   │ baseline-bench.txt │
                                   │        B/op        │
EventStoreAppend_InMemory-4                  796.5 ± 6%
EventStoreAppend_SQLite-4                  1.984Ki ± 2%
GetTimeline_InMemory/events-10-4           7.953Ki ± 0%
GetTimeline_InMemory/events-50-4           46.62Ki ± 0%
GetTimeline_InMemory/events-100-4          94.48Ki ± 0%
GetTimeline_InMemory/events-500-4          472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4         944.3Ki ± 0%
GetTimeline_SQLite/events-10-4             16.74Ki ± 0%
GetTimeline_SQLite/events-50-4             87.14Ki ± 0%
GetTimeline_SQLite/events-100-4            175.4Ki ± 0%
GetTimeline_SQLite/events-500-4            846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4           1.639Mi ± 0%
geomean                                    67.39Ki

                                   │ baseline-bench.txt │
                                   │     allocs/op      │
EventStoreAppend_InMemory-4                  7.000 ± 0%
EventStoreAppend_SQLite-4                    53.00 ± 0%
GetTimeline_InMemory/events-10-4             125.0 ± 0%
GetTimeline_InMemory/events-50-4             653.0 ± 0%
GetTimeline_InMemory/events-100-4           1.306k ± 0%
GetTimeline_InMemory/events-500-4           6.514k ± 0%
GetTimeline_InMemory/events-1000-4          13.02k ± 0%
GetTimeline_SQLite/events-10-4               382.0 ± 0%
GetTimeline_SQLite/events-50-4              1.852k ± 0%
GetTimeline_SQLite/events-100-4             3.681k ± 0%
GetTimeline_SQLite/events-500-4             18.54k ± 0%
GetTimeline_SQLite/events-1000-4            37.29k ± 0%
geomean                                     1.162k

cpu: AMD EPYC 9V74 80-Core Processor                
                                   │ benchmark-results.txt │
                                   │        sec/op         │
EventStoreAppend_InMemory-4                   1.037µ ± 21%
EventStoreAppend_SQLite-4                     1.057m ±  5%
GetTimeline_InMemory/events-10-4              13.21µ ±  1%
GetTimeline_InMemory/events-50-4              74.90µ ± 22%
GetTimeline_InMemory/events-100-4             116.8µ ±  1%
GetTimeline_InMemory/events-500-4             599.0µ ±  1%
GetTimeline_InMemory/events-1000-4            1.229m ±  1%
GetTimeline_SQLite/events-10-4                89.78µ ±  1%
GetTimeline_SQLite/events-50-4                236.3µ ±  1%
GetTimeline_SQLite/events-100-4               411.1µ ±  0%
GetTimeline_SQLite/events-500-4               1.792m ±  2%
GetTimeline_SQLite/events-1000-4              3.455m ±  1%
geomean                                       203.5µ

                                   │ benchmark-results.txt │
                                   │         B/op          │
EventStoreAppend_InMemory-4                     746.5 ± 6%
EventStoreAppend_SQLite-4                     1.983Ki ± 1%
GetTimeline_InMemory/events-10-4              7.953Ki ± 0%
GetTimeline_InMemory/events-50-4              46.62Ki ± 0%
GetTimeline_InMemory/events-100-4             94.48Ki ± 0%
GetTimeline_InMemory/events-500-4             472.8Ki ± 0%
GetTimeline_InMemory/events-1000-4            944.3Ki ± 0%
GetTimeline_SQLite/events-10-4                16.74Ki ± 0%
GetTimeline_SQLite/events-50-4                87.14Ki ± 0%
GetTimeline_SQLite/events-100-4               175.4Ki ± 0%
GetTimeline_SQLite/events-500-4               846.1Ki ± 0%
GetTimeline_SQLite/events-1000-4              1.639Mi ± 0%
geomean                                       67.02Ki

                                   │ benchmark-results.txt │
                                   │       allocs/op       │
EventStoreAppend_InMemory-4                     7.000 ± 0%
EventStoreAppend_SQLite-4                       53.00 ± 0%
GetTimeline_InMemory/events-10-4                125.0 ± 0%
GetTimeline_InMemory/events-50-4                653.0 ± 0%
GetTimeline_InMemory/events-100-4              1.306k ± 0%
GetTimeline_InMemory/events-500-4              6.514k ± 0%
GetTimeline_InMemory/events-1000-4             13.02k ± 0%
GetTimeline_SQLite/events-10-4                  382.0 ± 0%
GetTimeline_SQLite/events-50-4                 1.852k ± 0%
GetTimeline_SQLite/events-100-4                3.681k ± 0%
GetTimeline_SQLite/events-500-4                18.54k ± 0%
GetTimeline_SQLite/events-1000-4               37.29k ± 0%
geomean                                        1.162k

Benchmarks run with go test -bench=. -benchmem -count=6.
Regressions ≥ 20% are flagged. Results compared via benchstat.

@intel352 intel352 merged commit 23c0573 into main May 13, 2026
31 checks passed
@intel352 intel352 deleted the feat/issue-653-phase3-aws-drivers branch May 13, 2026 18:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants