dal

module
v0.2.16 Latest Latest
Warning

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

Go to latest
Published: Nov 17, 2024 License: MIT

README

dal

A highly flexible and extensible storage interface implementation in Go that provides a unified way to interact with different storage backends.

This package implements a generic storage interface that abstracts away the complexities of working with different storage systems. It provides a consistent API for basic CRUD operations while supporting various storage backends like Redis and others. The implementation includes robust error handling, metrics collection, and APM tracing capabilities.

Features

  • Unified Storage Interface: Common interface for multiple storage backends (IStorage)
  • Concurrent Operations: Support for both single and multi-storage operations
  • Built-in Metrics: Comprehensive metrics tracking for all operations
  • APM Integration: Built-in application performance monitoring with distributed tracing
  • Extensible Architecture: Easy to implement new storage backends
  • Pre/Post Operation Hooks: Customizable hooks for operation lifecycle management
  • Type-Safe Operations: Generic type support for type-safe data handling
  • Redis Implementation: Full featured Redis storage implementation included
  • Robust Error Handling: Comprehensive error handling with customer error types
  • Logging Support: Integrated logging system with different log levels

Install

go get github.com/thalesfsp/dal/storage

Contributing

  1. Fork
  2. Clone
  3. Create a branch
  4. Make changes following the same standards as the project
  5. Run make ci
  6. Create a merge request

Directories

Path Synopsis
Package elasticsearch implements the Elasticsearch storage.
Package elasticsearch implements the Elasticsearch storage.
Package file implements the AWS File storage.
Package file implements the AWS File storage.
internal
customapm
Package customapm provides types and methods to deal APM.
Package customapm provides types and methods to deal APM.
logging
Package logging provides the application logger.
Package logging provides the application logger.
metrics
Package metrics provides a set of metrics for the application.
Package metrics provides a set of metrics for the application.
shared
Package shared contains common shared information, and utilities.
Package shared contains common shared information, and utilities.
Package mongodb provides a MongoDB implementation of the storage interface.
Package mongodb provides a MongoDB implementation of the storage interface.
Package postgres implements the postgres storage.
Package postgres implements the postgres storage.
Package redis implements the Redis storage.
Package redis implements the Redis storage.
Package s3 implements the AWS S3 storage.
Package s3 implements the AWS S3 storage.
Package sftp provides a SFTP implementation of the storage interface.
Package sftp provides a SFTP implementation of the storage interface.
Package sqlite implements the sqlite storage.
Package sqlite implements the sqlite storage.
Package storage provides a simple interface to store and retrieve data from multiple data stores.
Package storage provides a simple interface to store and retrieve data from multiple data stores.

Jump to

Keyboard shortcuts

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