Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AMQPConfig ¶
type AMQPConfig struct {
// Host is the host of the queue
Host string `yaml:"host,omitempty" json:"host,omitempty"`
// Port is the port of the queue
Port int `yaml:"port,omitempty" json:"port,omitempty"`
// Username is the username of the queue
Username string `yaml:"username,omitempty" json:"username,omitempty"`
// Password is the password of the queue
Password string `yaml:"password,omitempty" json:"password,omitempty"`
}
AMQPConfig is the main configuration information needed to connect to an AMQP provider
type Config ¶
type Config struct {
// Providers is a list of sources that will be connected to
Providers []*ProviderConfig `yaml:"providers" json:"providers"`
// Queues is a list of queues that will be consumed
Queues []*QueueConfig `yaml:"queues" json:"queues"`
// Debug is a flag that enables debug logging
Debug bool `yaml:"debug" json:"debug"`
// Metrics is the configuration for the metrics endpoint
Metrics *MetricsConfig `yaml:"metrics" json:"metrics"`
// Log is the format of the log
Log string `yaml:"log,omitempty" json:"log"`
// Databases is the configuration for the database connections
Databases []*DatabaseConfig `yaml:"databases" json:"databases"`
}
Config is the main configuration struct
func LoadConfig ¶
LoadConfig loads the configuration from a file which can be either YAML or JSON.
func (*Config) ValidateAll ¶
ValidateAll validates the configuration
type DatabaseConfig ¶ added in v0.3.3
type DatabaseConfig struct {
// Name is the name of the database
Name string `yaml:"name" json:"name"`
// Type is the type of the database
Type string `yaml:"type" json:"type"`
// ConnectionString is the connection string for the database
ConnectionString string `yaml:"connection-string" json:"connection-string"`
// Retry is the amount of times the connection should be retried
Retry int `yaml:"retry,omitempty" json:"retry,omitempty"`
// Database is the database name for the database
Database string `yaml:"database,omitempty" json:"database,omitempty"`
}
DatabaseConfig is the configuration for the database connections
type DatabaseRouteConfig ¶ added in v0.3.3
type DatabaseRouteConfig struct {
// Name is the name of the database route
Name string `yaml:"name" json:"name"`
// Provider is the name of the provider database
Provider string `yaml:"provider" json:"provider"`
// Table is the name of the table in a SQL database
Table string `yaml:"table,omitempty" json:"table,omitempty"`
// Collection is the name of the collection in a NoSQL database
Collection string `yaml:"collection,omitempty" json:"collection,omitempty"`
// Mapping is the mapping of the message to the database
Mapping map[string]string `yaml:"mapping" json:"mapping"`
}
DatabaseRouteConfig is the main configuration information needed to store a message in a database
type KafkaConfig ¶
type KafkaConfig struct {
// Brokers is a list of brokers that will be consumed
Brokers []string `yaml:"brokers,omitempty" json:"brokers,omitempty"`
// Topic is a list of topics that will be consumed
Topic string `yaml:"topic,omitempty" json:"topic,omitempty"`
// Group is the consumer group that will be used
Group string `yaml:"group,omitempty" json:"group,omitempty"`
}
KafkaConfig is the main configuration information needed to connect to a Kafka provider
type MetricsConfig ¶ added in v0.3.1
type MetricsConfig struct {
// Enabled is a flag that enables the metrics endpoint
Enabled bool `yaml:"enabled" json:"enabled"`
// Port is the port that the metrics endpoint will listen on
Port int `yaml:"port,omitempty" json:"port,omitempty"`
// Path is the path that the metrics endpoint will listen on
Path string `yaml:"path,omitempty" json:"path,omitempty"`
// ThresholdStatus is the minimum status code that will increase failure count, defaults to 500
ThresholdStatus int `yaml:"threshold-status,omitempty" json:"threshold-status,omitempty"`
}
MetricsConfig is the configuration for the metrics endpoint
type ProviderConfig ¶
type ProviderConfig struct {
// Name is the name of the provider
Name string `yaml:"name" json:"name"`
// Type is the type of the provider, such as "amqp" or "kafka"
Type string `yaml:"type" json:"type"`
// Retry is the number of times to retry connecting to the provider
Retry int `yaml:"retry,omitempty" json:"retry,omitempty"`
// AMQPConfig is the configuration for the AMQP provider
AMQPConfig *AMQPConfig `yaml:"amqp-config,omitempty" json:"amqp-config,omitempty"`
// KafkaConfig is the configuration for the Kafka provider
KafkaConfig *KafkaConfig `yaml:"kafka-config,omitempty" json:"kafka-config,omitempty"`
// StompMQConfig is the configuration for the ActiveMQ provider
StompMQConfig *StompConfig `yaml:"stomp-config,omitempty" json:"stomp-config,omitempty"`
}
ProviderConfig is the main configuration information needed to connect to a provider
type QueueConfig ¶
type QueueConfig struct {
// Name is the name of the queue
Name string `yaml:"name" json:"name"`
// Provider is the provider that will be used to consume the queue
Provider string `yaml:"provider" json:"provider"`
// Retry is the retry configuration for the queue
Retry *RetryConfig `yaml:"retry,omitempty" json:"retry,omitempty"`
// Routes is the list of routes that will be used to send the messages
Routes []*RouteConfig `yaml:"routes" json:"routes"`
// DatabaseRoutes is the list of databases that will be used to store the messages
DatabaseRoutes []*DatabaseRouteConfig `yaml:"database-routes,omitempty" json:"database-routes,omitempty"`
}
QueueConfig is the main configuration information needed to consume a queue
type RetryConfig ¶
type RetryConfig struct {
// Enabled is the flag that indicates if the retry is enabled, defaults to false
Enabled bool `yaml:"enabled,omitempty" json:"enabled,omitempty"`
// MaxRetries is the maximum number of retries for the queue
MaxRetries int `yaml:"max-retries" json:"max-retries"`
// Strategy is the retry strategy for the queue, defaults to "fixed"
Strategy string `yaml:"strategy,omitempty" json:"strategy,omitempty"`
// Interval is the interval between retries
Interval time.Duration `yaml:"interval,omitempty" json:"interval,omitempty"`
// ThresholdStatus is the minimum status code that will trigger a retry, defaults to 500
ThresholdStatus int `yaml:"threshold-status,omitempty" json:"threshold-status,omitempty"`
}
RetryConfig is the main configuration information needed to retry a message
type RouteConfig ¶
type RouteConfig struct {
// Name is the name of the route
Name string `yaml:"name" json:"name"`
// URL is the URL of the service
URL string `yaml:"url" json:"url"`
// Method is the HTTP method of the request, defaults to "POST"
Method string `yaml:"method,omitempty" json:"method,omitempty"`
// Type is the type of the request, defaults to "REST"
Type string `yaml:"type,omitempty" json:"type,omitempty"`
// Headers is the list of headers that will be sent with the request
Headers map[string]string `yaml:"headers,omitempty" json:"headers,omitempty"`
// Body is the body of the request
Body map[string]interface{} `yaml:"body,omitempty" json:"body,omitempty"`
// Query is the query string of the request
Query map[string]string `yaml:"query,omitempty" json:"query,omitempty"`
// Timeout is the timeout of the request, defaults to 10 seconds
Timeout time.Duration `yaml:"timeout,omitempty" json:"timeout,omitempty"`
}
RouteConfig is the main configuration information needed to send a message to a service
type StompConfig ¶ added in v0.2.0
type StompConfig struct {
// Host is the host of the queue
Host string `yaml:"host,omitempty" json:"host,omitempty"`
// Port is the port of the queue
Port int `yaml:"port,omitempty" json:"port,omitempty"`
// Username is the username of the queue
Username string `yaml:"username,omitempty" json:"username,omitempty"`
// Password is the password of the queue
Password string `yaml:"password,omitempty" json:"password,omitempty"`
}