Skip to main content
A Go consumer package contains domain structs, ID types, named result models, relationship and field descriptors, ordinary functions, operations, and questions. It requires Go 1.22 or newer. Generate it from the same version 4 contract lock as TypeScript, Python, Java, and OpenAPI:
The module pins github.com/bijectionhq/bijection/sdks/application/go exactly. Publish the generated module using your normal private module proxy or tagged repository workflow. Consumers import it without producer source or replace directives. Major versions 2 and later require a matching /vN module suffix.
Omission uses consumer.Optional[T]; a nullable value uses a pointer. Native integers use int64, including values beyond JavaScript’s safe integer range. Bytes and special float64 values retain their native wire representations. String-literal unions generate named string types and constants. IDs from separate components have separate Go types. Struct tags retain exact public property names. Type-changing query methods use generic functions, for example consumer.Select(query, business.Shapes.OrderSummary) and consumer.Related(query, business.OrderLinks.Customer). Union, Intersect, and Subtract require compatible schemas and one workspace. Keyless collections expose query bindings; point reads appear only when the public contract provides them.
Use the exact argument field spelling in the package’s generated examples. Captures are immutable and persisted before submission. Typed restore refuses a changed generated contract; client.Runtime.InspectOperation preserves access to the original identity. A transport error never proves acceptance or failure. Questions expose Ask, Restore, and Explain, with generated named outputs. Request.Result(ctx) waits locally. Read table outputs with an explicit Collect(ctx, maxRows) bound, then call Request.Close(ctx). A durable pending close makes Runtime.Retry replay only close. Cancellation stops a local wait and leaves custody available for recovery. Watch(ctx, interval) uses native polling. A refusal emits an error without a cached value. It does not establish WebSocket observation parity. Native reads and paging retain server limits, basis, input digest, and caller identity. For a retained query, pass an explicit ExecutionBinding to Run; Bijection does not select or provision compute. Private file journals require a filesystem supporting private permissions, atomic hard links, and directory synchronization. Use a durable RequestStore adapter on other platforms. Memory custody must be selected explicitly and cannot survive a process restart. Candidate module installation and controlled protocol tests are separate from deployed qualification and public release availability. Saved proposals return typed Proposal[R] values. Runtime.ReviewProposal, ApproveProposal, and RevokeApproval retain the exact native locator and use the current caller. request.InvokeProposal submits the same captured request and rejects a locator from another capture.