Documentation
¶
Index ¶
- Variables
- type DeliveryAction
- func (a *DeliveryAction) Create(delivery *resource.Delivery) (*resource.Delivery, error)
- func (a *DeliveryAction) QueueRequest(deliveryID uuid.UUID) error
- func (a *DeliveryAction) RetrieveByID(id uuid.UUID) (*resource.Delivery, error)
- func (a *DeliveryAction) RetrieveByMessageID(messageID uuid.UUID) ([]*resource.Delivery, error)
- func (a *DeliveryAction) RetrieveMany(q *query.Query) ([]*resource.Delivery, error)
- func (a *DeliveryAction) Update(id uuid.UUID, delivery *resource.Delivery) (*resource.Delivery, error)
- type DeliveryActioner
- type DeliveryKindAction
- func (a *DeliveryKindAction) Create(deliveryKind *resource.DeliveryKind) (*resource.DeliveryKind, error)
- func (a *DeliveryKindAction) Delete(id uuid.UUID) error
- func (a *DeliveryKindAction) RetrieveByID(id uuid.UUID) (*resource.DeliveryKind, error)
- func (a *DeliveryKindAction) RetrieveByIDOrCode(idOrCode string) (*resource.DeliveryKind, error)
- func (a *DeliveryKindAction) RetrieveMany(q *query.Query) ([]*resource.DeliveryKind, error)
- func (a *DeliveryKindAction) Update(id uuid.UUID, deliveryKind *resource.DeliveryKind) (*resource.DeliveryKind, error)
- type DeliveryKindActioner
- type MessageAction
- func (a *MessageAction) Create(message *resource.Message) (*resource.Message, error)
- func (a *MessageAction) RetrieveByID(id uuid.UUID) (*resource.Message, error)
- func (a *MessageAction) RetrieveMany(q *query.Query) ([]*resource.Message, error)
- func (a *MessageAction) RetrievePotentiallyFailed(since time.Duration) ([]*resource.Message, error)
- func (a *MessageAction) Update(id uuid.UUID, message *resource.Message) (*resource.Message, error)
- type MessageActioner
- type MessageKindAction
- func (a *MessageKindAction) Create(messageKind *resource.MessageKind) (*resource.MessageKind, error)
- func (a *MessageKindAction) Delete(id uuid.UUID) error
- func (a *MessageKindAction) RetrieveByID(id uuid.UUID) (*resource.MessageKind, error)
- func (a *MessageKindAction) RetrieveByIDOrCode(idOrCode string) (*resource.MessageKind, error)
- func (a *MessageKindAction) RetrieveMany(q *query.Query) ([]*resource.MessageKind, error)
- func (a *MessageKindAction) Update(id uuid.UUID, messageKind *resource.MessageKind) (*resource.MessageKind, error)
- type MessageKindActioner
- type NamespaceAction
- func (a *NamespaceAction) Create(namespace *resource.Namespace) (*resource.Namespace, error)
- func (a *NamespaceAction) Delete(id uuid.UUID) error
- func (a *NamespaceAction) RetrieveByID(id uuid.UUID) (*resource.Namespace, error)
- func (a *NamespaceAction) RetrieveByIDOrCode(idOrCode string) (*resource.Namespace, error)
- func (a *NamespaceAction) RetrieveChildrenIDs(namespaceIDs ...uuid.UUID) ([]uuid.UUID, error)
- func (a *NamespaceAction) RetrieveMany(q *query.Query) ([]*resource.Namespace, error)
- func (a *NamespaceAction) RetrieveParentIDs(namespaceID uuid.UUID) ([]uuid.UUID, error)
- func (a *NamespaceAction) Update(id uuid.UUID, namespace *resource.Namespace) (*resource.Namespace, error)
- type NamespaceActioner
- type TemplateAction
- func (a *TemplateAction) Create(template *resource.Template) (*resource.Template, error)
- func (a *TemplateAction) Delete(id uuid.UUID) error
- func (a *TemplateAction) RetrieveByID(id uuid.UUID) (*resource.Template, error)
- func (a *TemplateAction) RetrieveMany(q *query.Query) ([]*resource.Template, error)
- func (a *TemplateAction) Update(id uuid.UUID, template *resource.Template) (*resource.Template, error)
- type TemplateActioner
- type TemplateKindAction
- func (a *TemplateKindAction) Create(templateKind *resource.TemplateKind) (*resource.TemplateKind, error)
- func (a *TemplateKindAction) Delete(id uuid.UUID) error
- func (a *TemplateKindAction) RetrieveByID(id uuid.UUID) (*resource.TemplateKind, error)
- func (a *TemplateKindAction) RetrieveMany(q *query.Query) ([]*resource.TemplateKind, error)
- func (a *TemplateKindAction) Update(id uuid.UUID, templateKind *resource.TemplateKind) (*resource.TemplateKind, error)
- type TemplateKindActioner
Constants ¶
This section is empty.
Variables ¶
var ( // ErrInvalidResourceID defines an error caused by an invalid resource id in the provided path. ErrInvalidResourceID = errors.New("invalid resource id") // ErrInvalidResourceIDOrCode defines an error caused by a value that is supposed to uniquely // match a given resource, but which does not match either an ID, nor a code field. ErrInvalidResourceIDOrCode = errors.New("invalid resource id or code") )
Functions ¶
This section is empty.
Types ¶
type DeliveryAction ¶
type DeliveryAction struct {
// contains filtered or unexported fields
}
func NewDeliveryAction ¶
func NewDeliveryAction(db database.ReadWriter, mq msgqueue.Publisher, clk clock.Clocker) *DeliveryAction
NewDeliveryAction creates a new delivery action.
func (*DeliveryAction) QueueRequest ¶
func (a *DeliveryAction) QueueRequest(deliveryID uuid.UUID) error
func (*DeliveryAction) RetrieveByID ¶
func (*DeliveryAction) RetrieveByMessageID ¶
func (*DeliveryAction) RetrieveMany ¶
type DeliveryActioner ¶
type DeliveryActioner interface {
RetrieveMany(*query.Query) ([]*resource.Delivery, error)
RetrieveByID(uuid.UUID) (*resource.Delivery, error)
RetrieveByMessageID(uuid.UUID) ([]*resource.Delivery, error)
Create(*resource.Delivery) (*resource.Delivery, error)
Update(uuid.UUID, *resource.Delivery) (*resource.Delivery, error)
QueueRequest(uuid.UUID) error
}
type DeliveryKindAction ¶
type DeliveryKindAction struct {
// contains filtered or unexported fields
}
func NewDeliveryKindAction ¶
func NewDeliveryKindAction(db database.ReadWriter, clk clock.Clocker) *DeliveryKindAction
NewDeliveryKindAction creates a new delivery kind action.
func (*DeliveryKindAction) Create ¶
func (a *DeliveryKindAction) Create(deliveryKind *resource.DeliveryKind) (*resource.DeliveryKind, error)
func (*DeliveryKindAction) RetrieveByID ¶
func (a *DeliveryKindAction) RetrieveByID(id uuid.UUID) (*resource.DeliveryKind, error)
func (*DeliveryKindAction) RetrieveByIDOrCode ¶
func (a *DeliveryKindAction) RetrieveByIDOrCode(idOrCode string) (*resource.DeliveryKind, error)
func (*DeliveryKindAction) RetrieveMany ¶
func (a *DeliveryKindAction) RetrieveMany(q *query.Query) ([]*resource.DeliveryKind, error)
func (*DeliveryKindAction) Update ¶
func (a *DeliveryKindAction) Update(id uuid.UUID, deliveryKind *resource.DeliveryKind) (*resource.DeliveryKind, error)
type DeliveryKindActioner ¶
type DeliveryKindActioner interface {
RetrieveMany(*query.Query) ([]*resource.DeliveryKind, error)
RetrieveByID(uuid.UUID) (*resource.DeliveryKind, error)
RetrieveByIDOrCode(string) (*resource.DeliveryKind, error)
Create(*resource.DeliveryKind) (*resource.DeliveryKind, error)
Update(uuid.UUID, *resource.DeliveryKind) (*resource.DeliveryKind, error)
Delete(uuid.UUID) error
}
type MessageAction ¶
type MessageAction struct {
// contains filtered or unexported fields
}
func NewMessageAction ¶
func NewMessageAction(db database.ReadWriter, clk clock.Clocker) *MessageAction
NewMessageAciton creates a new message action.
func (*MessageAction) RetrieveByID ¶
func (*MessageAction) RetrieveMany ¶
func (*MessageAction) RetrievePotentiallyFailed ¶
Failed messages are retried on an exponential backoff schedule, waiting 4^i seconds with each retry. Messages that have been tried six times will be considered as permanently failed.
The following table lists the wait time of each retry:
deliveries | wait time | cumul. wait time
-------------------------------------------------
0 | 1s, 1s | 1s
1 | 4s, 4s | 5s
2 | 16s, 16s | 21s
3 | 64s, 1m04s | 1m25
4 | 256s, 4m16s | 5m41
5 | 1024s, 17m04s | 22m45
6 | 4096s, 1h08m16s | 1h31m01
Notes:
- It should not happen for a failed message to have no deliveries. In this case, the message will still be added to the list of messages to deliver.
- The cumulative wait time column is an approximation. The Scheduler service is run periodically, and the exact wait time cannot be calculated beforehand.
type MessageActioner ¶
type MessageActioner interface {
RetrieveMany(*query.Query) ([]*resource.Message, error)
RetrieveByID(uuid.UUID) (*resource.Message, error)
RetrievePotentiallyFailed(time.Duration) ([]*resource.Message, error)
Create(*resource.Message) (*resource.Message, error)
Update(uuid.UUID, *resource.Message) (*resource.Message, error)
}
type MessageKindAction ¶
type MessageKindAction struct {
// contains filtered or unexported fields
}
func NewMessageKindAction ¶
func NewMessageKindAction(db database.ReadWriter, clk clock.Clocker) *MessageKindAction
NewMessageKindAction creates a new message kind action.
func (*MessageKindAction) Create ¶
func (a *MessageKindAction) Create(messageKind *resource.MessageKind) (*resource.MessageKind, error)
func (*MessageKindAction) RetrieveByID ¶
func (a *MessageKindAction) RetrieveByID(id uuid.UUID) (*resource.MessageKind, error)
func (*MessageKindAction) RetrieveByIDOrCode ¶
func (a *MessageKindAction) RetrieveByIDOrCode(idOrCode string) (*resource.MessageKind, error)
func (*MessageKindAction) RetrieveMany ¶
func (a *MessageKindAction) RetrieveMany(q *query.Query) ([]*resource.MessageKind, error)
func (*MessageKindAction) Update ¶
func (a *MessageKindAction) Update(id uuid.UUID, messageKind *resource.MessageKind) (*resource.MessageKind, error)
type MessageKindActioner ¶
type MessageKindActioner interface {
RetrieveMany(*query.Query) ([]*resource.MessageKind, error)
RetrieveByID(uuid.UUID) (*resource.MessageKind, error)
RetrieveByIDOrCode(string) (*resource.MessageKind, error)
Create(*resource.MessageKind) (*resource.MessageKind, error)
Update(uuid.UUID, *resource.MessageKind) (*resource.MessageKind, error)
Delete(uuid.UUID) error
}
type NamespaceAction ¶
type NamespaceAction struct {
// contains filtered or unexported fields
}
func NewNamespaceAction ¶
func NewNamespaceAction(db database.ReadWriter, clk clock.Clocker) *NamespaceAction
NewNamespaceAction creates a new message action.
func (*NamespaceAction) RetrieveByID ¶
func (*NamespaceAction) RetrieveByIDOrCode ¶
func (a *NamespaceAction) RetrieveByIDOrCode(idOrCode string) (*resource.Namespace, error)
func (*NamespaceAction) RetrieveChildrenIDs ¶
TODO: better if it only takes one namespace id? The only current usecase is to retrieve all children of all permitted namespaces, so maybe it's better with an input array?
func (*NamespaceAction) RetrieveMany ¶
func (*NamespaceAction) RetrieveParentIDs ¶
type NamespaceActioner ¶
type NamespaceActioner interface {
RetrieveMany(*query.Query) ([]*resource.Namespace, error)
RetrieveByID(uuid.UUID) (*resource.Namespace, error)
RetrieveByIDOrCode(string) (*resource.Namespace, error)
RetrieveParentIDs(uuid.UUID) ([]uuid.UUID, error)
RetrieveChildrenIDs(...uuid.UUID) ([]uuid.UUID, error)
Create(*resource.Namespace) (*resource.Namespace, error)
Update(uuid.UUID, *resource.Namespace) (*resource.Namespace, error)
Delete(uuid.UUID) error
}
type TemplateAction ¶
type TemplateAction struct {
// contains filtered or unexported fields
}
func NewTemplateAction ¶
func NewTemplateAction(db database.ReadWriter, clk clock.Clocker) *TemplateAction
NewTemplateAction creates a new template action.
func (*TemplateAction) RetrieveByID ¶
func (*TemplateAction) RetrieveMany ¶
type TemplateActioner ¶
type TemplateKindAction ¶
type TemplateKindAction struct {
// contains filtered or unexported fields
}
func NewTemplateKindAction ¶
func NewTemplateKindAction(db database.ReadWriter, clk clock.Clocker) *TemplateKindAction
NewTemplateKindAction creates a new template kind action.
func (*TemplateKindAction) Create ¶
func (a *TemplateKindAction) Create(templateKind *resource.TemplateKind) (*resource.TemplateKind, error)
func (*TemplateKindAction) RetrieveByID ¶
func (a *TemplateKindAction) RetrieveByID(id uuid.UUID) (*resource.TemplateKind, error)
func (*TemplateKindAction) RetrieveMany ¶
func (a *TemplateKindAction) RetrieveMany(q *query.Query) ([]*resource.TemplateKind, error)
func (*TemplateKindAction) Update ¶
func (a *TemplateKindAction) Update(id uuid.UUID, templateKind *resource.TemplateKind) (*resource.TemplateKind, error)
type TemplateKindActioner ¶
type TemplateKindActioner interface {
RetrieveMany(*query.Query) ([]*resource.TemplateKind, error)
RetrieveByID(uuid.UUID) (*resource.TemplateKind, error)
Create(*resource.TemplateKind) (*resource.TemplateKind, error)
Update(uuid.UUID, *resource.TemplateKind) (*resource.TemplateKind, error)
Delete(uuid.UUID) error
}