Repository navigation
Release v0.1.0
Summary
First release of Arc for Go, an experimental v0 port of Cratis Arc's HTTP CQRS framework. It covers commands, queries and observable queries over net/http, and requires Go 1.26 or later.
This tag releases only the root module, github.com/cratis/arc.go. The Chronicle integration, the MongoDB integration, the tools module (arc-gen and arc-vet) and the recipes are source previews in this repository. They are not tagged by v0.1.0 and are not installable at this version. Compatibility with Arc for .NET is partial and tracked in the parity map at https://github.com/Cratis/Arc.Go/blob/main/Documentation/parity.md.
Added
- Command and query pipelines with execution contexts, service scopes, command filters, response value handlers and Arc-shaped results, usable without a dependency-injection container or a Chronicle connection (#3) (#6) (#10) (#11) (#16)
- Flat command operations with commit-aware compensation, plus traditional-handler envelopes and request-merge adaptation (#30) (#35)
- Application builder and net/http hosting with endpoint discovery, following Arc's snapshot command and query HTTP contracts; static files and an SPA fallback are served through
Builder.Handle(#17) (#36) - Observable queries over Server-Sent Events and WebSocket, the query hub, emission guards and ownership verified across two application instances (#21) (#27)
- Validation, authentication, authorization, identity and tenancy, including scoped policy and validator factories (#7) (#11)
- Validation severity filtering, query paging and sorting metadata, and paging metadata that is cleared when HTTP publication fails (#28)
- Test scenarios and a task-board HTTP conformance host for specifying command and query behavior (#18)
- Source preview: Chronicle integration (
github.com/cratis/arc.go/integrations/chronicle) with a shared provider for Chronicle deliveries and Arc operations, command operations with compensation, reactor-issued commands, and optimistic decision reads (#14) (#19) (#29) (#31) - Source preview: MongoDB integration (
github.com/cratis/arc.go/integrations/mongodb) with read-model rendering, concept codecs, snapshot queries and bounded change-stream observation (#22) - Source preview:
arc-gengenerates typed Handle, Provide, query, validator and policy adapters and TypeScript proxies for the Cratis frontend packages, including Int32 enum parsers and validator and policy registration directives (#13) (#20) (#32) - Source preview:
arc-genwrites an OpenAPI 3.1 document and an opt-in Screenplay.playmetadata file; both are files only, with no HTTP route and no embedded viewer (#24) (#37) - Source preview:
arc-vetdiagnostics that report Go authoring mistakes beyond generation-time signature checks (#34) - Backend operation diagnostics and protected query health (#33)
- Source preview: recipes for mounting Arc under Chi, Gin and Echo, golang-jwt authentication, browser-origin CORS and CSRF protection, OpenTelemetry tracing and struct validation, documented at https://github.com/Cratis/Arc.Go/blob/main/Documentation/backend/go/recipes/index.md (#23)
- Documentation covering commands, queries, hosting, generation, Chronicle, MongoDB and testing, with a parity map at https://github.com/Cratis/Arc.Go/blob/main/Documentation/parity.md
Security
- Log output escapes control and line-separator characters to prevent log injection, session cookies are Secure except on plain-HTTP localhost, and Server-Sent Events frame allocation is bounded (#66)