Skip to content

docs: post-merge retro for PR #657 (issue #653 AWS IaC removal)#658

Merged
intel352 merged 19 commits into
mainfrom
feat/issue-653-aws-iac-cutover-v2
May 13, 2026
Merged

docs: post-merge retro for PR #657 (issue #653 AWS IaC removal)#658
intel352 merged 19 commits into
mainfrom
feat/issue-653-aws-iac-cutover-v2

Conversation

@intel352
Copy link
Copy Markdown
Contributor

Retro doc for PR #657 (feat(#653): remove AWS IaC modules from workflow core).

Covers adversarial-review findings scored, 2 gate misses (nilerr lint + ConfigKeys mismatch), skill activation audit, and plugin-level follow-ups building on the #617 precedent.

See: docs/retros/2026-05-13-issue-653-aws-iac-removal-retro.md

intel352 and others added 19 commits May 13, 2026 07:54
Force-cutover of 6 AWS IaC modules to workflow-plugin-aws v0.2.0.
Key divergence from #617: cloud_account_aws.go stays (AWSConfigProvider
used by Phase 2 out-of-scope files). platform.dns module type stays;
only Route53 backend is removed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Fixes: infra.autoscaling_group missing from core (C-1), platform.dns
validate-path guard gap (C-2), step count 15 not 16 (I-1), example/go.mod
tidy + grep gate (I-2), platform.dns schema description stale (I-3),
T1 file list ambiguity (m-1), T2 backend alternative justification (m-2),
T3 DNS row keep/remove clarity (m-3).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add module/app_container.go as partial-edit target in T1:
  move ECSContainer struct in from platform_ecs.go,
  remove case *PlatformECS type switch branch,
  update default error message.
- Record cycle 2 findings in adversarial review history.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ix refinement)

After removing case *PlatformECS, all ECS-specific structs and methods in
app_container.go become dead code. Design updated to remove them entirely
rather than leave dead code in place.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Fix schema: infra.autoscaling_group auto-generated from infraTypes,
  no manual module_schema.go entry needed.
- Add app_container.go comment lines to string-update list.
- Record cycle 3 PASS in adversarial review history.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6 tasks, single PR. Covers:
- T1: delete 14 files + app_container.go C-3 fix + regression gate
- T2: replace Route53 backend with migration error stub
- T3: strip registration sites + add infra.autoscaling_group
- T4: internal/legacyaws + migration errors in engine + wfctl
- T5: modernize legacy-aws-types rule + migration doc
- T6: go mod tidy + CI grep gate

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…cycle 1)

- T2: Init() succeeds for provider:aws (factory returns struct not error);
  migration error fires at Plan() time — fix test to call m.Plan() not m.Init();
  fix mock import (module.NewMockApplication not mock.); remove deleted Route53
  tests from file list
- T4: replace nonexistent minimalConfigWithModule() with newIsolatedEngine(t)
  + config.WorkflowConfig pattern from engine_legacy_do_migration_test.go;
  fix package (workflow not workflow_test); fix Create() call to 4-arg signature;
  add PluginLoaded variant mirroring DO test

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- T5 test used nonexistent findRule/check/fix helpers and wrong package
  (modernize_test); actual pattern is package modernize, direct legacyAWSRule()
  call, yaml.Unmarshal + rule.Check/Fix — mirrors legacy_do_rule_test.go exactly
- Remove duplicate "Add to pipeline step registry tests" paragraph
- Fix yaml.Marshal round-trip in Fix test to match actual pattern

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove platform.ecs, platform.networking, platform.apigateway, platform.autoscaling
module types and their 15 step types (ecs/apigw/scaling/network) from all
registration sites: plugins/platform, schema/schema.go, schema/module_schema.go,
schema/step_schema_builtins.go, cmd/wfctl/type_registry.go.

Add infra.autoscaling_group to plugins/infra and type_registry.go.
Update DOCUMENTATION.md with AWS IaC removal notice + infra.autoscaling_group row.
Fix multi_region.go error string to reference infra.container_service.
Regenerate schema/testdata/editor-schemas.golden.json.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Create internal/legacyaws/types.go mirroring internal/legacydo/types.go.
Maps 4 removed module types (platform.ecs/networking/apigateway/autoscaling)
and 15 removed step types to their infra.*/step.iac_* successors.
RemovedInVersion = v0.53.0.

Wire into engine.go, cmd/wfctl/validate.go, cmd/wfctl/ci_validate.go:
- extra schema module types list includes legacyaws.ModuleTypes
- post-validate sweep checks legacyaws.IsModuleType / IsStepType
- actionable FormatModuleError / FormatStepError returned on match

Remove 15 legacy step entries from cmd/wfctl/type_registry.go KnownStepTypes().

Tests: engine_legacyaws_test.go (plugin not loaded + plugin loaded branches)
+ cmd/wfctl/legacy_aws_types_removed_test.go (registry absent + validate/ci_validate paths).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add modernize/legacy_aws_rule.go mirroring legacy_do_rule.go:
- ID: legacy-aws-types, Severity: error
- Auto-fixes: platform.ecs→infra.container_service, platform.apigateway→infra.api_gateway,
  platform.autoscaling→infra.autoscaling_group
- Flags but does not auto-fix: platform.networking (1→2 split) + all 15 step types
  (config key shape mismatch: platform + state_store vs legacy service/gateway/scaling keys)
- Uses walkTypeNodes helper from legacy_do_rule.go (same package)

Register legacyAWSRule() in modernize/modernize.go AllRules() list.

Add docs/migrations/v0.53.0-aws-iac-removal.md with full migration recipe
(install plugin, modernize, add provider, manual rewrites for networking + steps).

Tests: TestLegacyAWSRule_Rewrites (3 auto-fixable types) +
TestLegacyAWSRule_GapTypesFlaggedNotRewritten (networking + 6 step types).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
go mod tidy drops 3 freed AWS SDK packages:
- service/apigatewayv2 (was platform.apigateway)
- service/applicationautoscaling (was platform.autoscaling)
- service/route53 (was platform.dns Route53 backend)

Also tidy example/go.mod.

Add aws-sdk-banned CI job to .github/workflows/ci.yml mirroring the
godo-banned job: grep-gates both *.go imports and go.mod entries for
the three freed service paths, excluding aws_absent_test.go.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
TestModernizeAllRulesRegistered: expected 9 rules → 10 (add legacy-aws-types).
TestKnownStepTypesPopulated: remove 15 legacy AWS step entries from expected list
(step.ecs_*/step.network_*/step.apigw_*/step.scaling_* all removed from KnownStepTypes).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 13, 2026 13:18
@intel352 intel352 merged commit 4ab58c1 into main May 13, 2026
28 checks passed
@intel352 intel352 deleted the feat/issue-653-aws-iac-cutover-v2 branch May 13, 2026 13:21
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 adds a post-merge retrospective document for the AWS IaC removal effort (#653 / PR #657), and the diff also includes broad codebase changes that complete/lock in the AWS IaC cutover (removing legacy platform.* AWS IaC modules/steps, adding migration messaging, and enforcing SDK bans).

Changes:

  • Remove legacy AWS IaC module/step types (platform.ecs/networking/apigateway/autoscaling + related step.*) from core registration points and schemas.
  • Add migration enforcement/UX: internal/legacyaws mappings, engine/wfctl validation errors, and a wfctl modernize rule (legacy-aws-types).
  • Add CI/test regression gates preventing reintroduction of the removed AWS SDK service packages; update docs/migrations and schema golden output.

Reviewed changes

Copilot reviewed 49 out of 51 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
schema/testdata/editor-schemas.golden.json Updates editor golden schemas to reflect removed legacy types and updated descriptions.
schema/step_schema_builtins.go Removes built-in step schema registrations for deleted legacy AWS steps.
schema/schema.go Removes legacy AWS module/step identifiers from the core type list.
schema/module_schema.go Removes module schemas for deleted legacy AWS modules; updates platform.dns messaging; adjusts app.container descriptions.
plugins/platform/plugin.go Removes legacy AWS module/step types from the platform plugin manifest and factories.
plugins/platform/plugin_test.go Updates platform plugin tests to stop expecting removed step/module factories.
plugins/infra/plugin.go Adds infra.autoscaling_group to the infra abstract type registry.
module/platform_networking_test.go Deletes tests for removed legacy networking module/steps.
module/platform_ecs.go Deletes the legacy ECS module implementation.
module/platform_ecs_test.go Deletes tests for removed legacy ECS module/steps.
module/platform_dns.go Switches provider: aws DNS backend to a migration-error backend.
module/platform_dns_test.go Updates DNS tests to assert the new migration error behavior for provider: aws.
module/platform_dns_backends.go Removes Route53 backend code; adds an AWS migration-error backend.
module/platform_aws_integration_test.go Deletes integration tests for removed legacy AWS IaC surfaces.
module/platform_autoscaling.go Deletes legacy autoscaling module implementation.
module/platform_autoscaling_test.go Deletes tests for removed legacy autoscaling module/steps.
module/platform_apigateway.go Deletes legacy API gateway module implementation.
module/platform_apigateway_test.go Deletes tests for removed legacy API gateway module/steps.
module/pipeline_step_networking.go Deletes legacy networking pipeline steps.
module/pipeline_step_ecs.go Deletes legacy ECS pipeline steps.
module/pipeline_step_autoscaling.go Deletes legacy autoscaling pipeline steps.
module/pipeline_step_apigateway.go Deletes legacy API gateway pipeline steps.
module/multi_region.go Updates error messaging to point to plugin-based successors (removes platform.ecs mention).
module/aws_api_gateway.go Deletes AWS API Gateway helper module.
module/aws_absent_test.go Adds a regression test to ensure removed AWS SDK service packages aren’t imported under module/.
module/app_container.go Removes ECS app backend handling; improves error/help text around the removed ECS platform.
module/api_gateway_test.go Removes tests that referenced the deleted AWS API gateway helper.
modernize/modernize.go Registers the new legacy AWS modernize rule.
modernize/legacy_aws_rule.go Adds legacy-aws-types rule to flag/auto-fix legacy AWS module types and flag steps.
modernize/legacy_aws_rule_test.go Adds coverage for the legacy AWS modernize rule behavior.
internal/legacyaws/types.go Introduces shared legacy AWS type mappings and migration error formatters.
go.mod Drops direct dependencies on removed AWS SDK service packages.
go.sum Removes checksums for dropped AWS SDK service packages.
example/go.mod Removes indirect dependencies on the dropped AWS SDK service packages.
example/go.sum Removes checksums for removed indirect AWS SDK packages.
engine.go Adds legacy AWS module types to validation extras and emits actionable migration errors.
engine_legacyaws_test.go Adds tests for engine legacy AWS migration error branches.
DOCUMENTATION.md Updates docs to remove legacy AWS module/step references and document the new plugin-based path.
docs/retros/2026-05-13-issue-653-aws-iac-removal-retro.md Adds the post-merge retrospective for #653/#657.
docs/plans/2026-05-13-issue-653-phase1-aws-cutover.md.scope-lock Adds scope-lock hash artifact for the plan.
docs/migrations/v0.53.0-aws-iac-removal.md Adds a migration guide for the v0.53.0 AWS IaC cutover.
cmd/wfctl/validate.go Adds legacy AWS type allowance + actionable migration errors to wfctl validate.
cmd/wfctl/ci_validate.go Adds legacy AWS type allowance + actionable migration errors to wfctl ci_validate.
cmd/wfctl/type_registry.go Removes legacy AWS types from the wfctl registry; fixes platform.dns keys; adds infra.autoscaling_group.
cmd/wfctl/type_registry_test.go Updates registry tests to no longer expect removed legacy AWS step types.
cmd/wfctl/modernize_test.go Verifies the new legacy AWS modernize rule is registered.
cmd/wfctl/legacy_aws_types_removed_test.go Adds wfctl tests locking absence of legacy AWS types and validating actionable migration errors.
.github/workflows/ci.yml Adds a CI grep gate preventing reintroduction of removed AWS SDK service packages.

Comment thread module/aws_absent_test.go
Comment on lines +33 to +36
f, _ := parser.ParseFile(fset, path, nil, parser.ImportsOnly)
if f == nil {
return nil // skip unparseable files
}
Comment on lines +109 to +115
func (b *awsRoute53ErrorBackend) err(m *PlatformDNS) error {
return fmt.Errorf(
"platform.dns %q: AWS Route53 backend removed from workflow core in v0.53.0 (issue #653).\n"+
"Migrate to: infra.dns (provider: aws) with workflow-plugin-aws v0.2.0+.\n"+
"Install: https://github.com/GoCodeAlone/workflow-plugin-aws\n"+
"See docs/migrations/v0.53.0-aws-iac-removal.md",
m.name,
Comment on lines +1 to +6
# Retro: Issue #653 Phase 1 — Remove AWS IaC Modules from Workflow Core

**PR:** [#657](https://github.com/GoCodeAlone/workflow/pull/657) — feat(#653): Phase 1 — remove AWS IaC modules from workflow core
**Merged:** 2026-05-13 (sha `1389d024`)
**Branch:** `feat/issue-653-aws-iac-cutover-v2`
**Design:** `docs/plans/2026-05-13-issue-653-phase1-aws-cutover-design.md`
@codecov
Copy link
Copy Markdown

codecov Bot commented May 13, 2026

Codecov Report

❌ Patch coverage is 67.74194% with 50 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
internal/legacyaws/types.go 0.00% 37 Missing ⚠️
module/platform_dns_backends.go 62.50% 6 Missing ⚠️
cmd/wfctl/ci_validate.go 66.66% 1 Missing and 1 partial ⚠️
cmd/wfctl/validate.go 66.66% 2 Missing ⚠️
module/app_container.go 0.00% 2 Missing ⚠️
module/multi_region.go 0.00% 1 Missing ⚠️

📢 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:319501: parsing iteration count: invalid syntax
baseline-bench.txt:633245: parsing iteration count: invalid syntax
baseline-bench.txt:1148031: parsing iteration count: invalid syntax
baseline-bench.txt:1461697: parsing iteration count: invalid syntax
baseline-bench.txt:1786865: parsing iteration count: invalid syntax
benchmark-results.txt:264: parsing iteration count: invalid syntax
benchmark-results.txt:359617: parsing iteration count: invalid syntax
benchmark-results.txt:631610: parsing iteration count: invalid syntax
benchmark-results.txt:930312: parsing iteration count: invalid syntax
benchmark-results.txt:1262482: parsing iteration count: invalid syntax
benchmark-results.txt:1585097: 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 │       benchmark-results.txt        │
                            │       sec/op       │    sec/op     vs base              │
InterpreterCreation-4              3.957m ± 168%   6.531m ± 58%       ~ (p=0.937 n=6)
ComponentLoad-4                    3.628m ±  10%   3.548m ±  1%  -2.20% (p=0.002 n=6)
ComponentExecute-4                 1.968µ ±   1%   1.966µ ±  1%       ~ (p=0.459 n=6)
PoolContention/workers-1-4         1.094µ ±   2%   1.090µ ±  2%       ~ (p=0.509 n=6)
PoolContention/workers-2-4         1.107µ ±   1%   1.088µ ±  3%       ~ (p=0.093 n=6)
PoolContention/workers-4-4         1.102µ ±   2%   1.093µ ±  3%       ~ (p=0.162 n=6)
PoolContention/workers-8-4         1.106µ ±   1%   1.093µ ±  1%  -1.18% (p=0.015 n=6)
PoolContention/workers-16-4        1.115µ ±   2%   1.110µ ±  2%       ~ (p=0.558 n=6)
ComponentLifecycle-4               3.621m ±   1%   3.616m ±  1%       ~ (p=0.818 n=6)
SourceValidation-4                 2.350µ ±   1%   2.393µ ±  1%  +1.85% (p=0.002 n=6)
RegistryConcurrent-4               797.4n ±   4%   812.6n ±  3%       ~ (p=0.310 n=6)
LoaderLoadFromString-4             3.555m ±   3%   3.665m ±  1%  +3.10% (p=0.004 n=6)
geomean                            17.95µ          18.71µ        +4.23%

                            │ baseline-bench.txt │        benchmark-results.txt         │
                            │        B/op        │     B/op      vs base                │
InterpreterCreation-4               2.027Mi ± 0%   2.027Mi ± 0%       ~ (p=0.937 n=6)
ComponentLoad-4                     2.180Mi ± 0%   2.180Mi ± 0%       ~ (p=0.732 n=6)
ComponentExecute-4                  1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4          1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4         1.203Ki ± 0%   1.203Ki ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                2.183Mi ± 0%   2.183Mi ± 0%  +0.00% (p=0.011 n=6)
SourceValidation-4                  1.984Ki ± 0%   1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                1.133Ki ± 0%   1.133Ki ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4              2.182Mi ± 0%   2.182Mi ± 0%       ~ (p=0.671 n=6)
geomean                             15.25Ki        15.25Ki       +0.00%
¹ all samples are equal

                            │ baseline-bench.txt │        benchmark-results.txt        │
                            │     allocs/op      │  allocs/op   vs base                │
InterpreterCreation-4                15.68k ± 0%   15.68k ± 0%       ~ (p=1.000 n=6)
ComponentLoad-4                      18.02k ± 0%   18.02k ± 0%       ~ (p=1.000 n=6)
ComponentExecute-4                    25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-1-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-2-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-4-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-8-4            25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
PoolContention/workers-16-4           25.00 ± 0%    25.00 ± 0%       ~ (p=1.000 n=6) ¹
ComponentLifecycle-4                 18.07k ± 0%   18.07k ± 0%       ~ (p=1.000 n=6) ¹
SourceValidation-4                    32.00 ± 0%    32.00 ± 0%       ~ (p=1.000 n=6) ¹
RegistryConcurrent-4                  2.000 ± 0%    2.000 ± 0%       ~ (p=1.000 n=6) ¹
LoaderLoadFromString-4               18.06k ± 0%   18.06k ± 0%       ~ (p=1.000 n=6) ¹
geomean                               183.3         183.3       +0.00%
¹ all samples are equal

pkg: github.com/GoCodeAlone/workflow/middleware
                                  │ baseline-bench.txt │       benchmark-results.txt       │
                                  │       sec/op       │   sec/op     vs base              │
CircuitBreakerDetection-4                  284.7n ± 3%   284.4n ± 5%       ~ (p=0.853 n=6)
CircuitBreakerExecution_Success-4          21.13n ± 2%   21.52n ± 0%  +1.85% (p=0.002 n=6)
CircuitBreakerExecution_Failure-4          65.08n ± 1%   66.22n ± 0%  +1.76% (p=0.002 n=6)
geomean                                    73.15n        74.00n       +1.16%

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │        B/op        │    B/op     vs base                │
CircuitBreakerDetection-4                 144.0 ± 0%     144.0 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                  │ baseline-bench.txt │       benchmark-results.txt        │
                                  │     allocs/op      │ allocs/op   vs base                │
CircuitBreakerDetection-4                 1.000 ± 0%     1.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Success-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
CircuitBreakerExecution_Failure-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                              ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/module
                                 │ baseline-bench.txt │       benchmark-results.txt        │
                                 │       sec/op       │    sec/op     vs base              │
JQTransform_Simple-4                     875.0n ± 29%   964.9n ± 17%       ~ (p=0.290 n=6)
JQTransform_ObjectConstruction-4         1.508µ ±  3%   1.458µ ±  0%  -3.32% (p=0.002 n=6)
JQTransform_ArraySelect-4                3.333µ ±  1%   3.316µ ±  2%       ~ (p=0.851 n=6)
JQTransform_Complex-4                    37.99µ ±  1%   37.74µ ±  1%       ~ (p=0.093 n=6)
JQTransform_Throughput-4                 1.850µ ±  1%   1.782µ ±  1%  -3.68% (p=0.002 n=6)
SSEPublishDelivery-4                     64.63n ±  1%   65.79n ±  1%  +1.79% (p=0.002 n=6)
geomean                                  1.647µ         1.656µ        +0.54%

                                 │ baseline-bench.txt │        benchmark-results.txt         │
                                 │        B/op        │     B/op      vs base                │
JQTransform_Simple-4                   1.273Ki ± 0%     1.273Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4       1.773Ki ± 0%     1.773Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4              2.625Ki ± 0%     2.625Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                  16.22Ki ± 0%     16.22Ki ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4               1.984Ki ± 0%     1.984Ki ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%       0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²                 +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                 │ baseline-bench.txt │       benchmark-results.txt        │
                                 │     allocs/op      │ allocs/op   vs base                │
JQTransform_Simple-4                     10.00 ± 0%     10.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ObjectConstruction-4         15.00 ± 0%     15.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_ArraySelect-4                30.00 ± 0%     30.00 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Complex-4                    324.0 ± 0%     324.0 ± 0%       ~ (p=1.000 n=6) ¹
JQTransform_Throughput-4                 17.00 ± 0%     17.00 ± 0%       ~ (p=1.000 n=6) ¹
SSEPublishDelivery-4                     0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                             ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/schema
                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │       sec/op       │    sec/op     vs base              │
SchemaValidation_Simple-4                   1.120µ ± 23%   1.115µ ±  3%       ~ (p=1.000 n=6)
SchemaValidation_AllFields-4                1.621µ ±  7%   1.677µ ± 22%       ~ (p=0.065 n=6)
SchemaValidation_FormatValidation-4         1.561µ ±  2%   1.600µ ±  2%       ~ (p=0.058 n=6)
SchemaValidation_ManySchemas-4              1.817µ ±  3%   1.838µ ±  3%       ~ (p=0.310 n=6)
geomean                                     1.506µ         1.531µ        +1.66%

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │        B/op        │    B/op     vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

                                    │ baseline-bench.txt │       benchmark-results.txt        │
                                    │     allocs/op      │ allocs/op   vs base                │
SchemaValidation_Simple-4                   0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_AllFields-4                0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_FormatValidation-4         0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
SchemaValidation_ManySchemas-4              0.000 ± 0%     0.000 ± 0%       ~ (p=1.000 n=6) ¹
geomean                                                ²               +0.00%               ²
¹ all samples are equal
² summaries must be >0 to compute geomean

pkg: github.com/GoCodeAlone/workflow/store
                                   │ baseline-bench.txt │        benchmark-results.txt        │
                                   │       sec/op       │    sec/op     vs base               │
EventStoreAppend_InMemory-4                1.230µ ± 28%   1.198µ ± 27%        ~ (p=1.000 n=6)
EventStoreAppend_SQLite-4                  1.273m ±  4%   1.577m ± 15%  +23.90% (p=0.002 n=6)
GetTimeline_InMemory/events-10-4           13.34µ ±  1%   14.46µ ±  2%   +8.36% (p=0.002 n=6)
GetTimeline_InMemory/events-50-4           75.42µ ±  3%   80.96µ ± 20%        ~ (p=0.065 n=6)
GetTimeline_InMemory/events-100-4          152.3µ ±  6%   129.7µ ±  1%  -14.80% (p=0.002 n=6)
GetTimeline_InMemory/events-500-4          626.6µ ±  0%   668.6µ ±  1%   +6.70% (p=0.002 n=6)
GetTimeline_InMemory/events-1000-4         1.278m ±  1%   1.370m ±  1%   +7.15% (p=0.002 n=6)
GetTimeline_SQLite/events-10-4             107.3µ ±  1%   109.8µ ±  1%   +2.37% (p=0.002 n=6)
GetTimeline_SQLite/events-50-4             247.1µ ±  1%   258.9µ ±  2%   +4.81% (p=0.002 n=6)
GetTimeline_SQLite/events-100-4            415.1µ ±  1%   439.0µ ±  1%   +5.75% (p=0.002 n=6)
GetTimeline_SQLite/events-500-4            1.755m ±  1%   1.856m ±  1%   +5.74% (p=0.002 n=6)
GetTimeline_SQLite/events-1000-4           3.449m ±  2%   3.614m ±  1%   +4.80% (p=0.002 n=6)
geomean                                    219.9µ         230.1µ         +4.62%

                                   │ baseline-bench.txt │        benchmark-results.txt         │
                                   │        B/op        │     B/op      vs base                │
EventStoreAppend_InMemory-4                  821.0 ± 6%     801.0 ± 5%       ~ (p=0.290 n=6)
EventStoreAppend_SQLite-4                  1.983Ki ± 2%   1.984Ki ± 2%       ~ (p=1.000 n=6)
GetTimeline_InMemory/events-10-4           7.953Ki ± 0%   7.953Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4           46.62Ki ± 0%   46.62Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4          94.48Ki ± 0%   94.48Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4          472.8Ki ± 0%   472.8Ki ± 0%  -0.00% (p=0.013 n=6)
GetTimeline_InMemory/events-1000-4         944.3Ki ± 0%   944.3Ki ± 0%       ~ (p=0.076 n=6)
GetTimeline_SQLite/events-10-4             16.74Ki ± 0%   16.74Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4             87.14Ki ± 0%   87.14Ki ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4            175.4Ki ± 0%   175.4Ki ± 0%       ~ (p=1.000 n=6)
GetTimeline_SQLite/events-500-4            846.1Ki ± 0%   846.1Ki ± 0%  +0.00% (p=0.013 n=6)
GetTimeline_SQLite/events-1000-4           1.639Mi ± 0%   1.639Mi ± 0%       ~ (p=0.184 n=6)
geomean                                    67.56Ki        67.42Ki       -0.20%
¹ all samples are equal

                                   │ baseline-bench.txt │        benchmark-results.txt        │
                                   │     allocs/op      │  allocs/op   vs base                │
EventStoreAppend_InMemory-4                  7.000 ± 0%    7.000 ± 0%       ~ (p=1.000 n=6) ¹
EventStoreAppend_SQLite-4                    53.00 ± 0%    53.00 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-10-4             125.0 ± 0%    125.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-50-4             653.0 ± 0%    653.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-100-4           1.306k ± 0%   1.306k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-500-4           6.514k ± 0%   6.514k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_InMemory/events-1000-4          13.02k ± 0%   13.02k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-10-4               382.0 ± 0%    382.0 ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-50-4              1.852k ± 0%   1.852k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-100-4             3.681k ± 0%   3.681k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-500-4             18.54k ± 0%   18.54k ± 0%       ~ (p=1.000 n=6) ¹
GetTimeline_SQLite/events-1000-4            37.29k ± 0%   37.29k ± 0%       ~ (p=1.000 n=6) ¹
geomean                                     1.162k        1.162k       +0.00%
¹ all samples are equal

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

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