Documentation
¶
Index ¶
- func GetTx(ctx context.Context) (*sql.Tx, error)
- type ContextKey
- type Data
- func (d *Data) BulkDeleteDocuments(ctx context.Context, index string, documentIDs []string) error
- func (d *Data) BulkIndexDocuments(ctx context.Context, index string, documents []any) error
- func (d *Data) BulkIndexDocumentsWith(ctx context.Context, engine search.Engine, index string, documents []any) error
- func (d *Data) Close() []error
- func (d *Data) ConsumeFromKafka(ctx context.Context, topic, groupID string, handler func([]byte) error) error
- func (d *Data) ConsumeFromRabbitMQ(queue string, handler func([]byte) error) error
- func (d *Data) DB() *sql.DB
- func (d *Data) DBRead() (*sql.DB, error)
- func (d *Data) DeleteDocument(ctx context.Context, index, documentID string) error
- func (d *Data) GetAvailableSearchEngines() []search.Engine
- func (d *Data) GetDBManager() *connection.DBManager
- func (d *Data) GetDatabaseNodes() (master *sql.DB, slaves []*sql.DB, err error)
- func (d *Data) GetElasticsearch() *elastic.Client
- func (d *Data) GetMasterDB() *sql.DB
- func (d *Data) GetMeilisearch() *meili.Client
- func (d *Data) GetMetricsCollector() metrics.Collector
- func (d *Data) GetMongoCollection(dbName, collName string, readOnly bool) (*mongo.Collection, error)
- func (d *Data) GetMongoDatabase(name string, readOnly bool) (*mongo.Database, error)
- func (d *Data) GetMongoManager() *connection.MongoManager
- func (d *Data) GetOpenSearch() *opensearch.Client
- func (d *Data) GetRedis() *redis.Client
- func (d *Data) GetSearchClient() *search.Client
- func (d *Data) GetSearchConfig() *config.Search
- func (d *Data) GetSearchEngine() search.Engine
- func (d *Data) GetSearchIndexPrefix() string
- func (d *Data) GetSlaveDB() (*sql.DB, error)
- func (d *Data) GetStats() map[string]any
- func (d *Data) Health(ctx context.Context) map[string]any
- func (d *Data) IndexDocument(ctx context.Context, req *search.IndexRequest) error
- func (d *Data) IndexDocumentWith(ctx context.Context, engine search.Engine, req *search.IndexRequest) error
- func (d *Data) IndexWithElasticsearch(ctx context.Context, index, documentID string, document any) error
- func (d *Data) IndexWithMeilisearch(index string, documents any, primaryKey ...string) error
- func (d *Data) IndexWithOpenSearch(ctx context.Context, index, documentID string, document any) error
- func (d *Data) IsMessagingAvailable() bool
- func (d *Data) IsMessagingEnabled() bool
- func (d *Data) IsQueueAvailable() bool
- func (d *Data) IsReadOnlyMode(ctx context.Context) bool
- func (d *Data) MongoHealthCheck(ctx context.Context) error
- func (d *Data) Ping(ctx context.Context) error
- func (d *Data) PublishToKafka(ctx context.Context, topic string, key, value []byte) error
- func (d *Data) PublishToRabbitMQ(exchange, routingKey string, body []byte) error
- func (d *Data) Search(ctx context.Context, req *search.Request) (*search.Response, error)
- func (d *Data) SearchHealth(ctx context.Context) map[search.Engine]error
- func (d *Data) SearchWith(ctx context.Context, engine search.Engine, req *search.Request) (*search.Response, error)
- func (d *Data) SearchWithElasticsearch(ctx context.Context, index, query string) error
- func (d *Data) SearchWithMeilisearch(ctx context.Context, index, query string) error
- func (d *Data) SearchWithOpenSearch(ctx context.Context, index, query string) error
- func (d *Data) SetSearchIndexPrefix(prefix string)
- func (d *Data) ShouldUseMemoryFallback() bool
- func (d *Data) UpdateSearchConfig(searchConfig *config.Search)
- func (d *Data) WithMongoTransaction(ctx context.Context, fn func(mongo.SessionContext) error) error
- func (d *Data) WithTx(ctx context.Context, fn func(ctx context.Context) error) error
- func (d *Data) WithTxRead(ctx context.Context, fn func(ctx context.Context) error) error
- type Option
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
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 NewWithOptions ¶
NewWithOptions creates new data layer with options
func (*Data) BulkDeleteDocuments ¶
BulkDeleteDocuments deletes multiple documents using best available engine
func (*Data) BulkIndexDocuments ¶
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) 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 ¶
ConsumeFromRabbitMQ consumes messages from RabbitMQ with metrics
func (*Data) DB ¶
DB returns the master database connection Deprecated: Use GetMasterDB() for better clarity
func (*Data) DBRead ¶
DBRead returns a slave database connection Deprecated: Use GetSlaveDB() for better clarity
func (*Data) DeleteDocument ¶
DeleteDocument deletes document using best available engine
func (*Data) GetAvailableSearchEngines ¶
GetAvailableSearchEngines returns available search engines
func (*Data) GetDBManager ¶
func (d *Data) GetDBManager() *connection.DBManager
GetDBManager returns the database manager
func (*Data) GetDatabaseNodes ¶
GetDatabaseNodes returns information about all database nodes (master and slaves)
func (*Data) GetElasticsearch ¶
GetElasticsearch returns the Elasticsearch client
func (*Data) GetMasterDB ¶
GetMasterDB returns the master database connection for write operations
func (*Data) GetMeilisearch ¶
GetMeilisearch returns the Meilisearch client
func (*Data) GetMetricsCollector ¶
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 ¶
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) GetSearchClient ¶ added in v0.1.21
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 ¶
GetSearchConfig returns current search configuration
func (*Data) GetSearchEngine ¶
GetSearchEngine returns search engine
func (*Data) GetSearchIndexPrefix ¶
GetSearchIndexPrefix returns current search index prefix
func (*Data) GetSlaveDB ¶
GetSlaveDB returns slave database connection for read operations
func (*Data) IndexDocument ¶
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 ¶
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 ¶
IsMessagingAvailable checks if any messaging (queue or memory) is available Deprecated: Use IsMessagingEnabled() and IsQueueAvailable() separately
func (*Data) IsMessagingEnabled ¶
IsMessagingEnabled checks if messaging services
func (*Data) IsQueueAvailable ¶
IsQueueAvailable checks if external message queues are available
func (*Data) IsReadOnlyMode ¶
IsReadOnlyMode checks if the system is in read-only mode (only slaves available)
func (*Data) MongoHealthCheck ¶
MongoHealthCheck performs MongoDB health check
func (*Data) PublishToKafka ¶
PublishToKafka publishes message to Kafka with metrics
func (*Data) PublishToRabbitMQ ¶
PublishToRabbitMQ publishes message to RabbitMQ with metrics
func (*Data) SearchHealth ¶
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 ¶
SearchWithElasticsearch searches with Elasticsearch Deprecated: Use Search() or SearchWith() instead
func (*Data) SearchWithMeilisearch ¶
SearchWithMeilisearch searches with Meilisearch Deprecated: Use Search() or SearchWith() instead
func (*Data) SearchWithOpenSearch ¶
SearchWithOpenSearch searches with OpenSearch Deprecated: Use Search() or SearchWith() instead
func (*Data) SetSearchIndexPrefix ¶
SetSearchIndexPrefix sets custom index prefix for search operations
func (*Data) ShouldUseMemoryFallback ¶
ShouldUseMemoryFallback checks if should fallback to memory when queue unavailable
func (*Data) UpdateSearchConfig ¶
UpdateSearchConfig updates search configuration
func (*Data) WithMongoTransaction ¶
WithMongoTransaction executes function within MongoDB 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 ¶
WithIndexPrefix sets custom search index prefix
func WithMetricsCollector ¶
WithMetricsCollector sets the metrics collector
func WithSearchConfig ¶
WithSearchConfig sets search configuration
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cache
module
|
|
|
databases
|
|
|
elasticsearch
module
|
|
|
entgo
module
|
|
|
kafka
module
|
|
|
meilisearch
module
|
|
|
messaging
|
|
|
mongodb
module
|
|
|
mysql
module
|
|
|
neo4j
module
|
|
|
opensearch
module
|
|
|
postgres
module
|
|
|
rabbitmq
module
|
|
|
redis
module
|
|
|
sqlite
module
|
|