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.
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.
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.