# Functions

EventOctopusInstance returns the EventOctopus singleton.
NewDelayedConsumerSet creates a set of DelayedConsumer where each successive poller has a interval which is exponent times bigger than the previous one.

# Constants

ChannelConsentErrored can be used to broadcast events which are errored and can not be retried.
ChannelConsentRequest is the default channel to broadcast events.
ChannelConsentRetry can be used to broadcast events which are errored and should be retried.
ClientID is the Nats client ID.
ConfigAutoRecover is the config name for republishing unfinished events at startup.
ConfigConnectionstring defines the string for the flagset.
ConfigConnectionStringDefault defines the default sqlite connection string.
ConfigIncrementalBackoff is the name of the config used to determine the incremental backoff.
ConfigIncrementalBackoffDefault is the default setting for the incremental backoff of retrying events.
ConfigMaxRetryCount is the config name for the number of retries for an event.
ConfigMaxRetryCountDefault is the default setting for the number of retries.
ConfigNatsPort defines the string for the flagset.
ConfigNatsPortDefault defines the default nats port.
ConfigPurgeCompleted is the config name for enabling purging completed events.
ConfigRetryInterval defines the string for the flagset.
ConfigRetryIntervalDefault defines the default for the nats retryInterval.
EventAllSignaturesPresent is emitted when all nodes have signed the consentRecord.
EventAttachmentSigned indicates one of the signatures has been signed.
EventErrored indicates the branch was closed.
EventCompleted indicates the flow has been completed 🎉.
EventConsentDistributed indicates the consent request has been distributed among all nodes.
EventConsentRequestAcked indicates the consentRequest has approved by the vendor system.
EventConsentRequestConstructed is the event emitted directly after consent request creation to start the flow.
EventConsentRequestFlowErrored indicates something went wrong 😔.
EventConsentRequestFlowSuccess is used when the Corda flow has been executed successfully.
EventConsentRequestInFlight is used to indicate the node is waiting for corda to come back with more information.
EventConsentRequestNacked indicates the consentRequest has been denied by the vendor system.
EventConsentRequestValid indicates the consentRequest is technically a valid request.
EventDistributedConsentRequestReceived is broadcasted by the consent-bridge when a request has been received.
EventErrored indicates the flow has errored.
EventInFinalFlight indicates the consentRequest is in flight for final storage.
Name is the name of this module.

# Structs

ChannelHandlers store all the handlers for a specific channel subscription.
DelayedConsumer holds info for creating a subscription on Nats for consuming events and re-publishing them with a certain delay.
Event is the type used for Gorm.
EventOctopus is the default implementation for EventOctopusInstance.
EventOctopusConfig holds the config for the EventOctopusInstance.
EventPublisher is a small wrapper around a natsClient so the user can pass an Event to Publish instead of a []byte.

# Interfaces

EventOctopusClient is the client interface for publishing events.
IEventPublisher defines the Publish signature so it can be mocked or implemented for another tech.

# Type aliases

EventHandlerCallback defines the signature of an event handler method.