Skip to content

A clean, scalable, lightweight and extensible implementation of multi-cloud file storage using Spring Context. Demonstrates advanced engineering practices like async processing, caching, retries, and observability for AWS S3 and Google Cloud Storage.

Notifications You must be signed in to change notification settings

Aliabbos-Ashurov/spring-multi-cloud-storage-engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Advanced Multi-Cloud File Storage

This project demonstrates an advanced-level implementation of a multi-cloud file storage system using Spring Context. It supports dynamic provider selection (AWS S3, Google Cloud Storage) and incorporates best practices such as asynchronous processing, caching, retries, and observability.


Features

Multi-Cloud Support: Seamlessly switch between AWS S3 and Google Cloud Storage.
Asynchronous Operations: Perform uploads, downloads, and deletions asynchronously for better performance. Support YAML config able to work with yaml configurations Observability: Integrated metrics and logging for monitoring and debugging.
Clean Code: Follows SOLID principles, design patterns, and senior-level engineering practices.

future release

Caching: Cache frequently accessed files to reduce latency and improve throughput.
Retry Mechanism: Built-in retry logic with exponential backoff for transient failures.
Configurable: Fine-grained configurations for retries, timeouts, and connection pooling.


Table of Contents

  1. Prerequisites
  2. Installation
  3. Configuration
  4. Usage
  5. Testing
  6. Contributing
  7. License

About

A clean, scalable, lightweight and extensible implementation of multi-cloud file storage using Spring Context. Demonstrates advanced engineering practices like async processing, caching, retries, and observability for AWS S3 and Google Cloud Storage.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages