Documentation
      ¶
    
    
  
    
  
    Index ¶
- Constants
 - func ApplyMetadata(cloudEvent map[string]interface{}, componentFeatures []Feature, ...)
 - func FromCloudEvent(cloudEvent []byte, topic, pubsub, traceID 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{}
 - type AppResponse
 - type AppResponseStatus
 - type ConcurrencyMode
 - type Feature
 - type Handler
 - type Metadata
 - type NewMessage
 - type PubSub
 - type PublishRequest
 - type SubscribeRequest
 
Constants ¶
const ( // DefaultCloudEventType is the default event type for an Dapr published event DefaultCloudEventType = "com.dapr.event.sent" // 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" TraceIDField = "traceid" TopicField = "topic" PubsubField = "pubsubname" ExpirationField = "expiration" DataContentTypeField = "datacontenttype" DataField = "data" DataBase64Field = "data_base64" SpecVersionField = "specversion" TypeField = "type" SourceField = "source" IDField = "id" SubjectField = "subject" )
Variables ¶
This section is empty.
Functions ¶
func ApplyMetadata ¶
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 FromCloudEvent ¶
func FromCloudEvent(cloudEvent []byte, topic, pubsub, traceID string) (map[string]interface{}, error)
FromCloudEvent returns a map representation of an existing cloudevents JSON
func FromRawPayload ¶
FromRawPayload returns a CloudEvent for a raw payload on subscriber's end.
func HasExpired ¶
HasExpired determines if the current cloud event has expired.
Types ¶
type AppResponse ¶
type AppResponse struct {
	Status AppResponseStatus `json:"status"`
}
    AppResponse is the object describing the response from user code after a pubsub event
type AppResponseStatus ¶
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 ConcurrencyMode ¶
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 ¶
func Concurrency(metadata map[string]string) (ConcurrencyMode, error)
Concurrency takes a metadata object and returns the ConcurrencyMode configured. Default is Parallel
type Feature ¶
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" )
type Handler ¶
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"`
}
    NewMessage is an event arriving from a message bus instance
type PubSub ¶
type PubSub interface {
	Init(metadata Metadata) error
	Features() []Feature
	Publish(req *PublishRequest) error
	Subscribe(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"`
}
    PublishRequest is the request to publish a message
type SubscribeRequest ¶
type SubscribeRequest struct {
	Topic    string            `json:"topic"`
	Metadata map[string]string `json:"metadata"`
}
    SubscribeRequest is the request to subscribe to a topic