data

package
v0.1.18 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 17, 2025 License: Apache-2.0 Imports: 17 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetTx

func GetTx(ctx context.Context) (*sql.Tx, error)

GetTx retrieves transaction from context

Types

type ContextKey

type ContextKey string
const (
	ContextKeyTransaction ContextKey = "tx"
)

type Data

type Data struct {
	Conn     *connection.Connections
	RabbitMQ *rabbitmq.RabbitMQ
	Kafka    *kafka.Kafka
	// contains filtered or unexported fields
}

Data represents the data layer implementation

func New

func New(cfg *config.Config, createNewInstance ...bool) (*Data, func(name ...string), error)

New creates new data layer

func NewWithOptions added in v0.1.4

func NewWithOptions(cfg *config.Config, opts ...Option) (*Data, func(name ...string), error)

NewWithOptions creates new data layer with options

func (*Data) BulkDeleteDocuments added in v0.1.4

func (d *Data) BulkDeleteDocuments(ctx context.Context, index string, documentIDs []string) error

BulkDeleteDocuments deletes multiple documents using best available engine

func (*Data) BulkIndexDocuments added in v0.1.4

func (d *Data) BulkIndexDocuments(ctx context.Context, index string, documents []any) error

BulkIndexDocuments indexes multiple documents using best available engine

func (*Data) BulkIndexDocumentsWith added in v0.1.4

func (d *Data) BulkIndexDocumentsWith(ctx context.Context, engine search.Engine, index string, documents []any) error

BulkIndexDocumentsWith indexes multiple documents using specified engine

func (*Data) Close

func (d *Data) Close() []error

Close closes all data connections

func (*Data) ConsumeFromKafka

func (d *Data) ConsumeFromKafka(ctx context.Context, topic, groupID string, handler func([]byte) error) error

ConsumeFromKafka consumes messages from Kafka with metrics

func (*Data) ConsumeFromRabbitMQ

func (d *Data) ConsumeFromRabbitMQ(queue string, handler func([]byte) error) error

ConsumeFromRabbitMQ consumes messages from RabbitMQ with metrics

func (*Data) DB

func (d *Data) DB() *sql.DB

DB returns the master database connection Deprecated: Use GetMasterDB() for better clarity

func (*Data) DBRead

func (d *Data) DBRead() (*sql.DB, error)

DBRead returns a slave database connection Deprecated: Use GetSlaveDB() for better clarity

func (*Data) DeleteDocument added in v0.1.4

func (d *Data) DeleteDocument(ctx context.Context, index, documentID string) error

DeleteDocument deletes document using best available engine

func (*Data) GetAvailableSearchEngines added in v0.1.4

func (d *Data) GetAvailableSearchEngines() []search.Engine

GetAvailableSearchEngines returns available search engines

func (*Data) GetDBManager

func (d *Data) GetDBManager() *connection.DBManager

GetDBManager returns the database manager

func (*Data) GetDatabaseNodes added in v0.1.4

func (d *Data) GetDatabaseNodes() (master *sql.DB, slaves []*sql.DB, err error)

GetDatabaseNodes returns information about all database nodes (master and slaves)

func (*Data) GetElasticsearch

func (d *Data) GetElasticsearch() *elastic.Client

GetElasticsearch returns the Elasticsearch client

func (*Data) GetMasterDB added in v0.1.4

func (d *Data) GetMasterDB() *sql.DB

GetMasterDB returns the master database connection for write operations

func (*Data) GetMeilisearch

func (d *Data) GetMeilisearch() *meili.Client

GetMeilisearch returns the Meilisearch client

func (*Data) GetMetricsCollector added in v0.1.4

func (d *Data) GetMetricsCollector() metrics.Collector

GetMetricsCollector returns the metrics collector

func (*Data) GetMongoCollection added in v0.1.4

func (d *Data) GetMongoCollection(dbName, collName string, readOnly bool) (*mongo.Collection, error)

GetMongoCollection returns a MongoDB collection instance

func (*Data) GetMongoDatabase added in v0.1.4

func (d *Data) GetMongoDatabase(name string, readOnly bool) (*mongo.Database, error)

GetMongoDatabase returns a MongoDB database instance

func (*Data) GetMongoManager

func (d *Data) GetMongoManager() *connection.MongoManager

GetMongoManager returns the MongoDB manager

func (*Data) GetOpenSearch added in v0.1.4

func (d *Data) GetOpenSearch() *opensearch.Client

GetOpenSearch returns the OpenSearch client

func (*Data) GetRedis

func (d *Data) GetRedis() *redis.Client

GetRedis returns the Redis client

func (*Data) GetSearchConfig added in v0.1.17

func (d *Data) GetSearchConfig() *config.Search

GetSearchConfig returns current search configuration

func (*Data) GetSearchEngine added in v0.1.4

func (d *Data) GetSearchEngine() search.Engine

GetSearchEngine returns search engine

func (*Data) GetSearchIndexPrefix added in v0.1.17

func (d *Data) GetSearchIndexPrefix() string

GetSearchIndexPrefix returns current search index prefix

func (*Data) GetSlaveDB added in v0.1.4

func (d *Data) GetSlaveDB() (*sql.DB, error)

GetSlaveDB returns slave database connection for read operations

func (*Data) GetStats added in v0.1.4

func (d *Data) GetStats() map[string]any

GetStats returns data layer statistics

func (*Data) Health added in v0.1.4

func (d *Data) Health(ctx context.Context) map[string]any

Health checks all components with comprehensive metrics collection

func (*Data) IndexDocument added in v0.1.4

func (d *Data) IndexDocument(ctx context.Context, req *search.IndexRequest) error

IndexDocument indexes document using best available engine

func (*Data) IndexDocumentWith added in v0.1.4

func (d *Data) IndexDocumentWith(ctx context.Context, engine search.Engine, req *search.IndexRequest) error

IndexDocumentWith indexes document using specified engine

func (*Data) IndexWithElasticsearch added in v0.1.4

func (d *Data) IndexWithElasticsearch(ctx context.Context, index, documentID string, document any) error

IndexWithElasticsearch indexes documents with Elasticsearch Deprecated: Use IndexDocument() or IndexDocumentWith() instead

func (*Data) IndexWithMeilisearch added in v0.1.4

func (d *Data) IndexWithMeilisearch(index string, documents any, primaryKey ...string) error

IndexWithMeilisearch indexes documents with Meilisearch Deprecated: Use IndexDocument() or IndexDocumentWith() instead

func (*Data) IndexWithOpenSearch added in v0.1.4

func (d *Data) IndexWithOpenSearch(ctx context.Context, index, documentID string, document any) error

IndexWithOpenSearch indexes documents with OpenSearch Deprecated: Use IndexDocument() or IndexDocumentWith() instead

func (*Data) IsMessagingAvailable added in v0.1.2

func (d *Data) IsMessagingAvailable() bool

IsMessagingAvailable checks if any messaging (queue or memory) is available Deprecated: Use IsMessagingEnabled() and IsQueueAvailable() separately

func (*Data) IsMessagingEnabled added in v0.1.16

func (d *Data) IsMessagingEnabled() bool

IsMessagingEnabled checks if messaging services

func (*Data) IsQueueAvailable added in v0.1.16

func (d *Data) IsQueueAvailable() bool

IsQueueAvailable checks if external message queues are available

func (*Data) IsReadOnlyMode added in v0.1.4

func (d *Data) IsReadOnlyMode(ctx context.Context) bool

IsReadOnlyMode checks if the system is in read-only mode (only slaves available)

func (*Data) MongoHealthCheck added in v0.1.4

func (d *Data) MongoHealthCheck(ctx context.Context) error

MongoHealthCheck performs MongoDB health check

func (*Data) Ping

func (d *Data) Ping(ctx context.Context) error

Ping checks all database connections

func (*Data) PublishToKafka

func (d *Data) PublishToKafka(ctx context.Context, topic string, key, value []byte) error

PublishToKafka publishes message to Kafka with metrics

func (*Data) PublishToRabbitMQ

func (d *Data) PublishToRabbitMQ(exchange, routingKey string, body []byte) error

PublishToRabbitMQ publishes message to RabbitMQ with metrics

func (*Data) Search added in v0.1.4

func (d *Data) Search(ctx context.Context, req *search.Request) (*search.Response, error)

Search performs search using best available engine

func (*Data) SearchHealth added in v0.1.4

func (d *Data) SearchHealth(ctx context.Context) map[search.Engine]error

SearchHealth checks search engines health

func (*Data) SearchWith added in v0.1.4

func (d *Data) SearchWith(ctx context.Context, engine search.Engine, req *search.Request) (*search.Response, error)

SearchWith performs search using specified engine

func (*Data) SearchWithElasticsearch added in v0.1.4

func (d *Data) SearchWithElasticsearch(ctx context.Context, index, query string) error

SearchWithElasticsearch searches with Elasticsearch Deprecated: Use Search() or SearchWith() instead

func (*Data) SearchWithMeilisearch added in v0.1.4

func (d *Data) SearchWithMeilisearch(ctx context.Context, index, query string) error

SearchWithMeilisearch searches with Meilisearch Deprecated: Use Search() or SearchWith() instead

func (*Data) SearchWithOpenSearch added in v0.1.4

func (d *Data) SearchWithOpenSearch(ctx context.Context, index, query string) error

SearchWithOpenSearch searches with OpenSearch Deprecated: Use Search() or SearchWith() instead

func (*Data) SetSearchIndexPrefix added in v0.1.17

func (d *Data) SetSearchIndexPrefix(prefix string)

SetSearchIndexPrefix sets custom index prefix for search operations

func (*Data) ShouldUseMemoryFallback added in v0.1.16

func (d *Data) ShouldUseMemoryFallback() bool

ShouldUseMemoryFallback checks if should fallback to memory when queue unavailable

func (*Data) UpdateSearchConfig added in v0.1.17

func (d *Data) UpdateSearchConfig(searchConfig *config.Search)

UpdateSearchConfig updates search configuration

func (*Data) WithMongoTransaction added in v0.1.4

func (d *Data) WithMongoTransaction(ctx context.Context, fn func(mongo.SessionContext) error) error

WithMongoTransaction executes function within MongoDB transaction

func (*Data) WithTx

func (d *Data) WithTx(ctx context.Context, fn func(ctx context.Context) error) error

WithTx wraps function within transaction

func (*Data) WithTxRead

func (d *Data) WithTxRead(ctx context.Context, fn func(ctx context.Context) error) error

WithTxRead wraps function within read-only transaction

type Option

type Option func(*Data)

Option function type for configuring Data

func WithExtensionCollector added in v0.1.4

func WithExtensionCollector(collector metrics.ExtensionCollector) Option

WithExtensionCollector sets extension layer collector using adapter

func WithIndexPrefix added in v0.1.17

func WithIndexPrefix(prefix string) Option

WithIndexPrefix sets custom search index prefix

func WithMetricsCollector added in v0.1.4

func WithMetricsCollector(collector metrics.Collector) Option

WithMetricsCollector sets the metrics collector

func WithSearchConfig added in v0.1.17

func WithSearchConfig(searchConfig *config.Search) Option

WithSearchConfig sets search configuration

Directories

Path Synopsis
cache module
databases
entgo module
kafka module
meilisearch module
messaging
mongodb module
mysql module
neo4j module
opensearch module
postgres module
rabbitmq module
redis module
sqlite module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL