 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
- func ApplyMetadata(cloudEvent map[string]interface{}, componentFeatures []Feature, ...)
- func ConvertTLSPropertiesToTLSConfig(properties TLSProperties) (*tls.Config, error)
- func FromCloudEvent(cloudEvent []byte, topic, pubsub, traceParent string, traceState string) (map[string]interface{}, error)
- func FromRawPayload(data []byte, topic, pubsub string) map[string]interface{}
- func HasExpired(cloudEvent map[string]interface{}) bool
- func NewCloudEventsEnvelope(id, source, eventType, subject string, topic string, pubsubName string, ...) map[string]interface{}
- func Ping(ctx context.Context, pubsub PubSub) error
- type AppBulkResponse
- type AppBulkResponseEntry
- type AppResponse
- type AppResponseStatus
- type BulkHandler
- type BulkMessage
- type BulkMessageEntry
- type BulkPublishRequest
- type BulkPublishResponse
- type BulkPublishResponseFailedEntry
- type BulkPublisher
- type BulkSubscribeConfig
- type BulkSubscribeResponse
- type BulkSubscribeResponseEntry
- type BulkSubscriber
- type ConcurrencyMode
- type Feature
- type Handler
- type Metadata
- type NewMessage
- type PubSub
- type PublishRequest
- type SubscribeRequest
- type TLSProperties
Constants ¶
const ( // DefaultCloudEventType is the default event type for an Dapr published event. DefaultCloudEventType = "com.dapr.event.sent" // DefaultBulkEventType is the default bulk event type for a Dapr published event. DefaultBulkEventType = "com.dapr.event.sent.bulk" // CloudEventsSpecVersion is the specversion used by Dapr for the cloud events implementation. CloudEventsSpecVersion = "1.0" // DefaultCloudEventSource is the default event source. DefaultCloudEventSource = "Dapr" // DefaultCloudEventDataContentType is the default content-type for the data attribute. DefaultCloudEventDataContentType = "text/plain" // traceid, backwards compatibles. // ::TODO delete traceid, and keep traceparent. TraceIDField = "traceid" TraceParentField = "traceparent" TraceStateField = "tracestate" TopicField = "topic" PubsubField = "pubsubname" ExpirationField = "expiration" DataContentTypeField = "datacontenttype" DataField = "data" DataBase64Field = "data_base64" SpecVersionField = "specversion" TypeField = "type" SourceField = "source" IDField = "id" SubjectField = "subject" TimeField = "time" )
const ( // CACert is the metadata key name for the CA certificate. CACert = "caCert" // ClientCert is the metadata key name for the client certificate. ClientCert = "clientCert" // ClientKey is the metadata key name for the client key. ClientKey = "clientKey" )
const RuntimeConsumerIDKey = "consumerID"
    When the Dapr component does not explicitly specify a consumer group, this value provided by the runtime must be used. This value is specific to each Dapr App. As a result, by default, each Dapr App will receive all messages published to the topic at least once. See https://github.com/dapr/dapr/blob/21566de8d7fdc7d43ae627ffc0698cc073fa71b0/pkg/runtime/runtime.go#L1735-L1739
Variables ¶
This section is empty.
Functions ¶
func ApplyMetadata ¶ added in v1.0.0
func ApplyMetadata(cloudEvent map[string]interface{}, componentFeatures []Feature, metadata map[string]string)
ApplyMetadata will process metadata to modify the cloud event based on the component's feature set.
func ConvertTLSPropertiesToTLSConfig ¶ added in v1.10.1
func ConvertTLSPropertiesToTLSConfig(properties TLSProperties) (*tls.Config, error)
ConvertTLSPropertiesToTLSConfig converts the TLSProperties to a tls.Config.
func FromCloudEvent ¶ added in v1.0.0
func FromCloudEvent(cloudEvent []byte, topic, pubsub, traceParent string, traceState string) (map[string]interface{}, error)
FromCloudEvent returns a map representation of an existing cloudevents JSON.
func FromRawPayload ¶ added in v1.2.0
FromRawPayload returns a CloudEvent for a raw payload on subscriber's end.
func HasExpired ¶ added in v1.0.0
HasExpired determines if the current cloud event has expired.
func NewCloudEventsEnvelope ¶
func NewCloudEventsEnvelope(id, source, eventType, subject string, topic string, pubsubName string, dataContentType string, data []byte, traceParent string, traceState string, ) map[string]interface{}
NewCloudEventsEnvelope returns a map representation of a cloudevents JSON.
Types ¶
type AppBulkResponse ¶ added in v1.10.1
type AppBulkResponse struct {
	AppResponses []AppBulkResponseEntry `json:"statuses"`
}
    AppBulkResponse is the whole bulk subscribe response sent by App
type AppBulkResponseEntry ¶ added in v1.10.1
type AppBulkResponseEntry struct {
	EntryId string            `json:"entryId"` //nolint:stylecheck
	Status  AppResponseStatus `json:"status"`
}
    AppBulkResponseEntry Represents single response, as part of AppBulkResponse, to be sent by subscibed App for the corresponding single message during bulk subscribe
type AppResponse ¶ added in v0.4.0
type AppResponse struct {
	Status AppResponseStatus `json:"status"`
}
    AppResponse is the object describing the response from user code after a pubsub event.
type AppResponseStatus ¶ added in v0.4.0
type AppResponseStatus string
AppResponseStatus represents a status of a PubSub response.
const ( // Success means the message is received and processed correctly. Success AppResponseStatus = "SUCCESS" // Retry means the message is received but could not be processed and must be retried. Retry AppResponseStatus = "RETRY" // Drop means the message is received but should not be processed. Drop AppResponseStatus = "DROP" )
type BulkHandler ¶ added in v1.10.1
type BulkHandler func(ctx context.Context, msg *BulkMessage) ([]BulkSubscribeResponseEntry, error)
[]BulkSubscribeResponseEntry represents individual statuses for each message in an orderly fashion.
type BulkMessage ¶ added in v1.10.1
type BulkMessage struct {
	Entries  []BulkMessageEntry `json:"entries"`
	Topic    string             `json:"topic"`
	Metadata map[string]string  `json:"metadata"`
}
    BulkMessage represents bulk message arriving from a message bus instance.
func (BulkMessage) String ¶ added in v1.10.1
func (m BulkMessage) String() string
String implements fmt.Stringer and it's useful for debugging.
type BulkMessageEntry ¶ added in v1.10.1
type BulkMessageEntry struct {
	EntryId     string            `json:"entryId"` //nolint:stylecheck
	Event       []byte            `json:"event"`
	ContentType string            `json:"contentType,omitempty"`
	Metadata    map[string]string `json:"metadata"`
}
    BulkMessageEntry represents a single message inside a bulk request.
func (BulkMessageEntry) String ¶ added in v1.10.1
func (m BulkMessageEntry) String() string
String implements fmt.Stringer and it's useful for debugging.
type BulkPublishRequest ¶ added in v1.10.1
type BulkPublishRequest struct {
	Entries    []BulkMessageEntry `json:"entries"`
	PubsubName string             `json:"pubsubname"`
	Topic      string             `json:"topic"`
	Metadata   map[string]string  `json:"metadata"`
}
    BulkPublishRequest is the request to publish mutilple messages.
type BulkPublishResponse ¶ added in v1.10.1
type BulkPublishResponse struct {
	FailedEntries []BulkPublishResponseFailedEntry `json:"failedEntries"`
}
    BulkPublishResponse contains the list of failed entries in a bulk publish request.
func NewBulkPublishResponse ¶ added in v1.10.1
func NewBulkPublishResponse(messages []BulkMessageEntry, err error) BulkPublishResponse
NewBulkPublishResponse returns a BulkPublishResponse with each entry having same error. This method is a helper method to map a single error response on BulkPublish to multiple events.
type BulkPublishResponseFailedEntry ¶ added in v1.10.1
type BulkPublishResponseFailedEntry struct {
	EntryId string `json:"entryId"` //nolint:stylecheck
	Error   error  `json:"error"`
}
    BulkPublishResponseFailedEntry Represents single publish response, as part of BulkPublishResponse to be sent to publishing App for the corresponding single message during bulk publish
type BulkPublisher ¶ added in v1.10.1
type BulkPublisher interface {
	BulkPublish(ctx context.Context, req *BulkPublishRequest) (BulkPublishResponse, error)
}
    BulkPublish publishes a collection of entries/messages in a BulkPublishRequest to a message bus topic and returns a BulkPublishResponse with failed entries for any failed messages. Error is returned on partial or complete failures. If there are no failures, error is nil.
type BulkSubscribeConfig ¶ added in v1.10.1
type BulkSubscribeConfig struct {
	MaxMessagesCount   int `json:"maxMessagesCount,omitempty"`
	MaxAwaitDurationMs int `json:"maxAwaitDurationMs,omitempty"`
}
    BulkSubscribeConfig represents the configuration for bulk subscribe. It depends on specific componets to support these.
type BulkSubscribeResponse ¶ added in v1.10.1
type BulkSubscribeResponse struct {
	Error    error                        `json:"error"`
	Statuses []BulkSubscribeResponseEntry `json:"statuses"`
}
    BulkSubscribeResponse is the whole bulk subscribe response sent to building block
type BulkSubscribeResponseEntry ¶ added in v1.10.1
type BulkSubscribeResponseEntry struct {
	EntryId string `json:"entryId"` //nolint:stylecheck
	Error   error  `json:"error"`
}
    BulkSubscribeResponseEntry Represents single subscribe response item, as part of BulkSubscribeResponse to be sent to building block for the corresponding single message during bulk subscribe
type BulkSubscriber ¶ added in v1.10.1
type BulkSubscriber interface {
	// BulkSubscribe is used to subscribe to a topic and receive collection of entries/ messages
	// from a message bus topic.
	// The bulkHandler will be called with a list of messages.
	BulkSubscribe(ctx context.Context, req SubscribeRequest, bulkHandler BulkHandler) error
}
    BulkSubscriber is the interface defining BulkSubscribe definition for message buses
type ConcurrencyMode ¶ added in v1.0.0
type ConcurrencyMode string
ConcurrencyMode is a pub/sub metadata setting that allows to specify whether messages are delivered in a serial or parallel execution.
const ( // ConcurrencyKey is the metadata key name for ConcurrencyMode. ConcurrencyKey = "concurrencyMode" Single ConcurrencyMode = "single" Parallel ConcurrencyMode = "parallel" )
func Concurrency ¶ added in v1.0.0
func Concurrency(metadata map[string]string) (ConcurrencyMode, error)
Concurrency takes a metadata object and returns the ConcurrencyMode configured. Default is Parallel.
type Feature ¶ added in v1.0.0
type Feature string
Feature names a feature that can be implemented by PubSub components.
const ( // FeatureMessageTTL is the feature to handle message TTL. FeatureMessageTTL Feature = "MESSAGE_TTL" // FeatureSubscribeWildcards is the feature to allow subscribing to topics/queues using a wildcard. FeatureSubscribeWildcards Feature = "SUBSCRIBE_WILDCARDS" FeatureBulkPublish Feature = "BULK_PUBSUB" )
type Handler ¶ added in v1.2.0
type Handler func(ctx context.Context, msg *NewMessage) error
Handler is the handler used to invoke the app handler.
type NewMessage ¶
type NewMessage struct {
	Data        []byte            `json:"data"`
	Topic       string            `json:"topic"`
	Metadata    map[string]string `json:"metadata"`
	ContentType *string           `json:"contentType,omitempty"`
}
    NewMessage is an event arriving from a message bus instance.
func (NewMessage) String ¶ added in v1.10.1
func (m NewMessage) String() string
String implements fmt.Stringer and it's useful for debugging.
type PubSub ¶
type PubSub interface {
	metadata.ComponentWithMetadata
	Init(ctx context.Context, metadata Metadata) error
	Features() []Feature
	Publish(ctx context.Context, req *PublishRequest) error
	Subscribe(ctx context.Context, req SubscribeRequest, handler Handler) error
	Close() error
}
    PubSub is the interface for message buses.
type PublishRequest ¶
type PublishRequest struct {
	Data        []byte            `json:"data"`
	PubsubName  string            `json:"pubsubname"`
	Topic       string            `json:"topic"`
	Metadata    map[string]string `json:"metadata"`
	ContentType *string           `json:"contentType,omitempty"`
}
    PublishRequest is the request to publish a message.
type SubscribeRequest ¶
type SubscribeRequest struct {
	Topic               string              `json:"topic"`
	Metadata            map[string]string   `json:"metadata"`
	BulkSubscribeConfig BulkSubscribeConfig `json:"bulkSubscribe,omitempty"`
}
    SubscribeRequest is the request to subscribe to a topic.
type TLSProperties ¶ added in v1.10.1
TLSProperties is a struct that contains the TLS properties.
       Source Files
      ¶
      Source Files
      ¶
    
  
       Directories
      ¶
      Directories
      ¶
    
    | Path | Synopsis | 
|---|---|
| aws
       | |
| azure
       | |
| gcp
       | |
| Package natsstreaming implements NATS Streaming pubsub component | Package natsstreaming implements NATS Streaming pubsub component | 
| solace
       | |