Skip to content

fix: normalize config authoring quirks#873

Merged
intel352 merged 10 commits into
mainfrom
fix/config-quirks-075
Jun 7, 2026
Merged

fix: normalize config authoring quirks#873
intel352 merged 10 commits into
mainfrom
fix/config-quirks-075

Conversation

@intel352
Copy link
Copy Markdown
Contributor

@intel352 intel352 commented Jun 7, 2026

Summary

  • accept http.server.config.port as an additive alias while keeping address canonical
  • normalize DB step aliases (module, args, one, many) and add wfctl modernize coverage
  • add request/response/conditional authoring aliases, schema registry metadata, and docs
  • remove the config quirks guide now that the documented quirks are addressed

Verification

  • GOWORK=off go test ./cmd/wfctl ./module ./plugins/http ./plugins/pipelinesteps -count=1
  • GOWORK=off UPDATE_GOLDEN=1 go test ./schema -run TestEditorSchemasGoldenFile -count=1
  • GOWORK=off go test . ./plugins/all ./schema -run 'TestRegistryConsistency|TestDocumentationCoverage|TestModuleSchemaRegistry|TestEditorSchemasGoldenFile' -count=1
  • GOWORK=off go test ./... -count=1
  • /Users/jon/.codex/plugins/cache/autodev-marketplace/autodev/6.5.0/tests/plan-scope-check.sh --verify-lock /Users/jon/workspace/.autodev/gocodealone-audit/clones/workflow/docs/plans/2026-06-07-workflow-docs-ecosystem.md

Plan: docs/plans/2026-06-07-workflow-docs-ecosystem.md PR1 / Tasks 1-4.

Copilot AI review requested due to automatic review settings June 7, 2026 04:51
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 improves Workflow’s config authoring ergonomics by adding additive compatibility aliases (while keeping canonical fields), extending wfctl modernize to rewrite common aliases back to canonical config, and updating schemas/tests/docs to reflect the normalized surfaces.

Changes:

  • Accept and validate new authoring aliases (e.g., http.server.config.port, DB step module/args/one/many, request parse format, conditional if/then/else, and step.response).
  • Extend wfctl modernize with a new rule to rewrite DB step aliases and normalize DB modes.
  • Update schema registry metadata, golden editor schemas, tests, and docs; remove the now-obsolete config quirks guide.

Reviewed changes

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

Show a summary per file
File Description
schema/validate.go Adds module-specific validation to allow http.server port alias alongside canonical address.
schema/testdata/editor-schemas.golden.json Updates generated editor schema output to document new aliases and canonical wording.
schema/step_schema_builtins.go Registers step.response schema as an alias of step.json_response.
schema/schema.go Adds step.response to the core known type list.
schema/schema_test.go Updates/extends config validation tests for http.server port alias behavior.
schema/module_schema.go Updates built-in module/step schemas to document canonical keys plus accepted aliases.
schema/module_schema_test.go Ensures http server schema exposes both address and port.
plugins/pipelinesteps/plugin.go Registers step.response step type as an alias to step.json_response.
plugins/pipelinesteps/plugin_test.go Adds coverage for the step.response factory alias behavior.
plugins/http/schemas.go Documents port as an alias for the canonical address config key.
plugins/http/plugin_test.go Tests http.server port alias normalization in the plugin factory and schema listing.
plugins/http/modules.go Implements http.server address normalization from address or port (multi-type parsing).
module/reflect_validation_test.go Updates reflect-based schema expectations for http.server address no longer being individually required.
module/pipeline_step_request_parse.go Supports `format: json
module/pipeline_step_request_parse_test.go Adds test coverage for the format alias.
module/pipeline_step_json_response.go Decodes template-resolved JSON arrays/objects before encoding response to avoid double-serialization.
module/pipeline_step_json_response_test.go Adds tests for raw JSON array/object template decoding behavior.
module/pipeline_step_db_query.go Normalizes DB step config aliases and mode (module/args/many/one).
module/pipeline_step_db_query_test.go Adds tests ensuring DB alias normalization and canonical precedence.
module/pipeline_step_db_query_cached.go Applies DB alias normalization to cached query steps as well.
module/pipeline_step_db_exec.go Applies DB alias normalization to exec steps, including mode normalization for returning queries.
module/pipeline_step_db_exec_test.go Adds tests for DB exec alias normalization and canonical precedence.
module/pipeline_step_db_config.go Introduces shared helper functions for alias resolution and mode normalization.
module/pipeline_step_conditional.go Adds if/then/else conditional routing mode alongside existing field/routes mode.
module/pipeline_step_conditional_test.go Adds tests for if/then/else conditional behavior with both {{ }} and ${ } forms.
module/http_server.go Updates editor tag metadata to describe address as canonical rather than “required”.
modernize/rules.go Adds YAML AST helpers and a new rule to rewrite DB config aliases to canonical keys/modes.
modernize/modernize.go Registers the new DB alias modernize rule.
handlers/testhelpers_test.go Registers step.response in cyclic plugin test helper wiring.
DOCUMENTATION.md Adds step.response to the documented step catalog.
docs/WFCTL.md Documents the new wfctl modernize rule and clarifies alias rewriting intent.
docs/tutorials/building-apps-with-workflow.md Notes canonical keys and lists supported authoring aliases + wfctl modernize guidance.
docs/plans/2026-06-07-workflow-docs-ecosystem.md.scope-lock Adds scope lock hash for the docs plan.
docs/plans/2026-06-07-workflow-docs-ecosystem.md Adds the implementation plan for docs ecosystem work (PR1 tasks).
docs/plans/2026-06-07-workflow-docs-ecosystem-plan-review.md Adds adversarial review report for the plan artifact.
docs/plans/2026-06-07-workflow-docs-ecosystem-design.md Adds the docs ecosystem design artifact.
docs/plans/2026-06-07-workflow-docs-ecosystem-design-review.md Adds adversarial review report for the design artifact.
docs/plans/2026-06-07-workflow-docs-ecosystem-alignment-check.md Adds design/plan alignment report artifact.
docs/dsl-reference.md Documents canonical field notes and pipeline authoring alias notes.
docs/config-field-quirks.md Removes the quirks/inconsistencies doc now that the listed quirks are addressed.
decisions/0048-wfctl-owned-go-api-docs.md Adds ADR documenting the decision to generate Go API docs via wfctl.
cmd/wfctl/type_registry.go Updates module/step type registry metadata to include new aliases and step types.
cmd/wfctl/type_registry_test.go Adds/updates tests to ensure the type registry includes the new keys/types.
cmd/wfctl/modernize_test.go Adds tests validating the new DB alias modernize rule behavior.

Comment thread schema/validate.go
Comment thread cmd/wfctl/type_registry.go
Comment thread cmd/wfctl/type_registry.go
@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 7, 2026

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 7, 2026

⏱ Benchmark Results

No significant performance regressions detected.

benchstat comparison (baseline → PR)
## benchstat: baseline → PR
baseline-bench.txt:304: parsing iteration count: invalid syntax
baseline-bench.txt:290129: parsing iteration count: invalid syntax
baseline-bench.txt:578787: parsing iteration count: invalid syntax
baseline-bench.txt:839413: parsing iteration count: invalid syntax
baseline-bench.txt:1146341: parsing iteration count: invalid syntax
baseline-bench.txt:1477455: parsing iteration count: invalid syntax
benchmark-results.txt:304: parsing iteration count: invalid syntax
benchmark-results.txt:635288: parsing iteration count: invalid syntax
benchmark-results.txt:1223400: parsing iteration count: invalid syntax
benchmark-results.txt:1825582: parsing iteration count: invalid syntax
benchmark-results.txt:2328362: parsing iteration count: invalid syntax
benchmark-results.txt:2759418: 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               8.448m ± 63%
ComponentLoad-4                     3.570m ± 13%
ComponentExecute-4                  1.946µ ±  2%
PoolContention/workers-1-4          1.127µ ±  1%
PoolContention/workers-2-4          1.101µ ±  5%
PoolContention/workers-4-4          1.085µ ±  0%
PoolContention/workers-8-4          1.095µ ±  1%
PoolContention/workers-16-4         1.087µ ±  2%
ComponentLifecycle-4                3.594m ±  0%
SourceValidation-4                  2.327µ ±  1%
RegistryConcurrent-4                801.7n ±  3%
LoaderLoadFromString-4              3.609m ±  0%
geomean                             19.04µ

                            │ 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 9V45 96-Core Processor                
                            │ benchmark-results.txt │
                            │        sec/op         │
InterpreterCreation-4                 1.861m ± 271%
ComponentLoad-4                       2.008m ±   7%
ComponentExecute-4                    1.074µ ±   6%
PoolContention/workers-1-4            591.4n ±   5%
PoolContention/workers-2-4            593.8n ±   4%
PoolContention/workers-4-4            569.6n ±   1%
PoolContention/workers-8-4            570.7n ±   2%
PoolContention/workers-16-4           574.2n ±   1%
ComponentLifecycle-4                  2.011m ±   0%
SourceValidation-4                    1.207µ ±   1%
RegistryConcurrent-4                  453.4n ±   5%
LoaderLoadFromString-4                2.038m ±   2%
geomean                               9.570µ

                            │ 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.1n ± 0%
CircuitBreakerExecution_Success-4          21.45n ± 1%
CircuitBreakerExecution_Failure-4          65.39n ± 0%
geomean                                    73.76n

                                  │ 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 9V45 96-Core Processor                
                                  │ benchmark-results.txt │
                                  │        sec/op         │
CircuitBreakerDetection-4                     334.4n ± 1%
CircuitBreakerExecution_Success-4             43.19n ± 1%
CircuitBreakerExecution_Failure-4             63.28n ± 1%
geomean                                       97.04n

                                  │ 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       │
IaCStateBackend_InProcess-4              307.3n ± 36%
IaCStateBackend_GRPC-4                   9.538m ±  3%
JQTransform_Simple-4                     681.4n ± 35%
JQTransform_ObjectConstruction-4         1.524µ ±  1%
JQTransform_ArraySelect-4                3.450µ ±  2%
JQTransform_Complex-4                    39.42µ ±  1%
JQTransform_Throughput-4                 1.866µ ±  1%
SSEPublishDelivery-4                     66.64n ±  0%
geomean                                  3.881µ

                                 │ baseline-bench.txt │
                                 │        B/op        │
IaCStateBackend_InProcess-4             416.0 ±  0%
IaCStateBackend_GRPC-4                5.910Mi ± 11%
JQTransform_Simple-4                  1.273Ki ±  0%
JQTransform_ObjectConstruction-4      1.773Ki ±  0%
JQTransform_ArraySelect-4             2.625Ki ±  0%
JQTransform_Complex-4                 16.31Ki ±  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      │
IaCStateBackend_InProcess-4              2.000 ± 0%
IaCStateBackend_GRPC-4                  6.834k ± 0%
JQTransform_Simple-4                     10.00 ± 0%
JQTransform_ObjectConstruction-4         15.00 ± 0%
JQTransform_ArraySelect-4                30.00 ± 0%
JQTransform_Complex-4                    328.0 ± 0%
JQTransform_Throughput-4                 17.00 ± 0%
SSEPublishDelivery-4                     0.000 ± 0%
geomean                                             ¹
¹ summaries must be >0 to compute geomean

cpu: AMD EPYC 9V45 96-Core Processor                
                                 │ benchmark-results.txt │
                                 │        sec/op         │
IaCStateBackend_InProcess-4                 187.9n ± 34%
IaCStateBackend_GRPC-4                      5.336m ±  3%
JQTransform_Simple-4                        358.9n ±  6%
JQTransform_ObjectConstruction-4            790.1n ±  2%
JQTransform_ArraySelect-4                   1.811µ ±  1%
JQTransform_Complex-4                       20.61µ ±  1%
JQTransform_Throughput-4                    971.2n ±  1%
SSEPublishDelivery-4                        51.40n ±  1%
geomean                                     2.190µ

                                 │ benchmark-results.txt │
                                 │         B/op          │
IaCStateBackend_InProcess-4                416.0 ±  0%
IaCStateBackend_GRPC-4                   5.606Mi ± 10%
JQTransform_Simple-4                     1.273Ki ±  0%
JQTransform_ObjectConstruction-4         1.773Ki ±  0%
JQTransform_ArraySelect-4                2.625Ki ±  0%
JQTransform_Complex-4                    16.31Ki ±  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       │
IaCStateBackend_InProcess-4                 2.000 ± 0%
IaCStateBackend_GRPC-4                     6.844k ± 0%
JQTransform_Simple-4                        10.00 ± 0%
JQTransform_ObjectConstruction-4            15.00 ± 0%
JQTransform_ArraySelect-4                   30.00 ± 0%
JQTransform_Complex-4                       328.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.107µ ± 2%
SchemaValidation_AllFields-4                 1.686µ ± 4%
SchemaValidation_FormatValidation-4          1.585µ ± 3%
SchemaValidation_ManySchemas-4               1.843µ ± 4%
geomean                                      1.528µ

                                    │ 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 9V45 96-Core Processor                
                                    │ benchmark-results.txt │
                                    │        sec/op         │
SchemaValidation_Simple-4                       593.8n ± 6%
SchemaValidation_AllFields-4                    857.6n ± 2%
SchemaValidation_FormatValidation-4             837.2n ± 3%
SchemaValidation_ManySchemas-4                  968.4n ± 4%
geomean                                         801.6n

                                    │ 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.229µ ± 15%
EventStoreAppend_SQLite-4                  1.332m ± 10%
GetTimeline_InMemory/events-10-4           14.13µ ±  4%
GetTimeline_InMemory/events-50-4           80.45µ ±  3%
GetTimeline_InMemory/events-100-4          124.6µ ±  2%
GetTimeline_InMemory/events-500-4          638.8µ ±  0%
GetTimeline_InMemory/events-1000-4         1.303m ±  0%
GetTimeline_SQLite/events-10-4             72.35µ ±  1%
GetTimeline_SQLite/events-50-4             216.8µ ±  2%
GetTimeline_SQLite/events-100-4            394.3µ ±  1%
GetTimeline_SQLite/events-500-4            1.788m ±  1%
GetTimeline_SQLite/events-1000-4           3.521m ±  0%
geomean                                    210.4µ

                                   │ baseline-bench.txt │
                                   │        B/op        │
EventStoreAppend_InMemory-4                  823.0 ± 7%
EventStoreAppend_SQLite-4                  1.985Ki ± 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.58Ki

                                   │ 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 9V45 96-Core Processor                
                                   │ benchmark-results.txt │
                                   │        sec/op         │
EventStoreAppend_InMemory-4                  603.8n ±   4%
EventStoreAppend_SQLite-4                    1.492m ± 124%
GetTimeline_InMemory/events-10-4             5.967µ ±   1%
GetTimeline_InMemory/events-50-4             33.44µ ±   4%
GetTimeline_InMemory/events-100-4            66.22µ ±   2%
GetTimeline_InMemory/events-500-4            333.2µ ±   1%
GetTimeline_InMemory/events-1000-4           681.0µ ±   1%
GetTimeline_SQLite/events-10-4               34.64µ ±   4%
GetTimeline_SQLite/events-50-4               121.2µ ±   3%
GetTimeline_SQLite/events-100-4              227.5µ ±   0%
GetTimeline_SQLite/events-500-4              1.109m ±   6%
GetTimeline_SQLite/events-1000-4             2.184m ±   1%
geomean                                      116.5µ

                                   │ benchmark-results.txt │
                                   │         B/op          │
EventStoreAppend_InMemory-4                    767.5 ± 10%
EventStoreAppend_SQLite-4                    1.985Ki ±  5%
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.18Ki

                                   │ 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 fa00433 into main Jun 7, 2026
22 checks passed
@intel352 intel352 deleted the fix/config-quirks-075 branch June 7, 2026 05:18
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