data

package module
v0.1.24 Latest Latest
Warning

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

Go to latest
Published: Jan 7, 2026 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

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

NewWithOptions creates new data layer with options

func (*Data) BulkDeleteDocuments

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

BulkDeleteDocuments deletes multiple documents using best available engine

func (*Data) BulkIndexDocuments

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

BulkIndexDocuments indexes multiple documents using best available engine

func (*Data) BulkIndexDocumentsWith

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

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

DeleteDocument deletes document using best available engine

func (*Data) GetAvailableSearchEngines

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

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

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

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

GetMetricsCollector returns the metrics collector

func (*Data) GetMongoCollection

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

GetMongoCollection returns a MongoDB collection instance

func (*Data) GetMongoDatabase

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

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) GetSearchClient added in v0.1.21

func (d *Data) GetSearchClient() *search.Client

GetSearchClient returns initialized search client that abstracts Meilisearch, Elasticsearch, and OpenSearch. The client automatically selects the best available search engine based on configuration. Returns nil if no search engine is configured.

func (*Data) GetSearchConfig

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

GetSearchConfig returns current search configuration

func (*Data) GetSearchEngine

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

GetSearchEngine returns search engine

func (*Data) GetSearchIndexPrefix

func (d *Data) GetSearchIndexPrefix() string

GetSearchIndexPrefix returns current search index prefix

func (*Data) GetSlaveDB

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

GetSlaveDB returns slave database connection for read operations

func (*Data) GetStats

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

GetStats returns data layer statistics

func (*Data) Health

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

Health checks all components with comprehensive metrics collection

func (*Data) IndexDocument

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

IndexDocument indexes document using best available engine

func (*Data) IndexDocumentWith

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

IndexDocumentWith indexes document using specified engine

func (*Data) IndexWithElasticsearch

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

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

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

func (d *Data) IsMessagingAvailable() bool

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

func (*Data) IsMessagingEnabled

func (d *Data) IsMessagingEnabled() bool

IsMessagingEnabled checks if messaging services

func (*Data) IsQueueAvailable

func (d *Data) IsQueueAvailable() bool

IsQueueAvailable checks if external message queues are available

func (*Data) IsReadOnlyMode

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

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

func (*Data) MongoHealthCheck

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

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

Search performs search using best available engine

func (*Data) SearchHealth

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

SearchHealth checks search engines health

func (*Data) SearchWith

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

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

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

func (*Data) SearchWithMeilisearch

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

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

func (*Data) SearchWithOpenSearch

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

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

func (*Data) SetSearchIndexPrefix

func (d *Data) SetSearchIndexPrefix(prefix string)

SetSearchIndexPrefix sets custom index prefix for search operations

func (*Data) ShouldUseMemoryFallback

func (d *Data) ShouldUseMemoryFallback() bool

ShouldUseMemoryFallback checks if should fallback to memory when queue unavailable

func (*Data) UpdateSearchConfig

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

UpdateSearchConfig updates search configuration

func (*Data) WithMongoTransaction

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

func WithExtensionCollector(collector metrics.ExtensionCollector) Option

WithExtensionCollector sets extension layer collector using adapter

func WithIndexPrefix

func WithIndexPrefix(prefix string) Option

WithIndexPrefix sets custom search index prefix

func WithMetricsCollector

func WithMetricsCollector(collector metrics.Collector) Option

WithMetricsCollector sets the metrics collector

func WithSearchConfig

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