Documentation
¶
Overview ¶
Package ecosystem maps Dispatch envelopes to reliable ecosystem acceptance APIs.
Index ¶
- Constants
- Variables
- func ChronicleRequest(b Binding, d durable.Delivery) (ca.Request, error)
- func RegisterRelaySchema(ctx context.Context, c *catalog.Catalog, appID string) error
- func RelayRequest(b Binding, d durable.Delivery) (ra.Request, error)
- type Binding
- type Chronicle
- type ChronicleClient
- type ConflictResponse
- type Relay
- type RelayClient
- type Remote
Constants ¶
const MappingVersion = 1
const MaxResponseBytes = 256 << 10
const RelayEventType = "dispatch.delivery.v1"
Variables ¶
var ErrTransport = errors.New("dispatch: sink transport unavailable or invalid response")
Functions ¶
func RegisterRelaySchema ¶
RegisterRelaySchema installs the actual schema in the sink catalog. Hosts call this before admitting requests, using their trusted app identity.
Types ¶
type Binding ¶
type Binding struct {
Producer string
InstallationID string
Namespace string
AppID string
OrgID string
TenantID string
}
Binding comes from the host installation registry, never delivery content. Each adapter serves one immutable namespace ownership record.
type Chronicle ¶
type Chronicle struct {
Binding Binding
Client ChronicleClient
}
type ChronicleClient ¶
type ConflictResponse ¶
type ConflictResponse struct {
Destination string `json:"destination"`
SourceKey string `json:"source_key"`
SourceFingerprint string `json:"source_fingerprint"`
Fingerprint string `json:"fingerprint"`
}
ConflictResponse is emitted only after the reliable API confirms a conflict. Its binding prevents an unrelated proxy error from permanently blocking work.
type Relay ¶
type Relay struct {
Binding Binding
Client RelayClient
}
type RelayClient ¶
type Remote ¶
type Remote struct {
// contains filtered or unexported fields
}
Remote owns a fixed destination and never accepts URLs from delivery content. Credentials are private and error messages contain no request or response data.
func (*Remote) Close ¶
func (r *Remote) Close()
Close drops idle connections. It goes to the *http.Transport directly: the traced wrapper around it has no CloseIdleConnections, so http.Client.CloseIdleConnections would not reach it.