1.0 Project Overview
Client Industry: File Hosting & Media Sharing
Project Duration: 3 Months
Project Type: Scalable Cloud-Based File Hosting Platform
Primary Focus: High performance, scalability, media delivery, analytics, and distributed file serving
Project Objective
The objective was to design and develop a robust file hosting and media-sharing platform capable of supporting high-volume file uploads, downloads, and streaming while providing a foundation that could scale horizontally as the user base and content library grew.
The initial infrastructure was designed to support approximately 500,000 file-serving operations per day, covering both file downloads and media streaming.
2.0 Background & Challenge
The client required a modern file-sharing platform capable of handling significant volumes of digital content without relying on a single application or storage server.
The platform needed to address several key challenges:
- Efficiently serve a large volume of files and media concurrently.
- Scale application servers horizontally as traffic increased.
- Distribute file-serving workloads across multiple nodes.
- Support both downloads and media streaming.
- Provide fast search across large volumes of user content.
- Generate and manage media thumbnails and audio waveforms.
- Collect detailed usage and performance analytics.
- Provide granular access controls for users and administrators.
- Allow users to delegate access to their accounts without sharing passwords.
- Maintain high availability while keeping the architecture flexible enough for future expansion.
To meet these requirements, the platform was designed around a distributed, microservices-oriented architecture with independently scalable application, storage, search, caching, and analytics components.
3.0 Solution & Scope
3.1 Scalable Data Layer
The platform uses a distributed data architecture designed to support high-volume operations and future horizontal expansion.
MongoDB serves as the primary application database, providing a flexible document-oriented data model suitable for the platform’s rapidly evolving data structures.
Redis is used as a high-speed caching and transient data layer, reducing database load and improving response times for frequently accessed information.
Elasticsearch powers full-text and content-oriented search, allowing users and administrators to quickly locate files, folders, and other platform resources.
ClickHouse handles high-volume analytical workloads, allowing operational data to be processed separately from transactional workloads.
This separation ensures that intensive search and analytics operations do not unnecessarily impact core application performance.
3.2 Application Programming Interface (API)
The API serves as the central communication layer between the platform’s frontend, file-serving infrastructure, and backend services.
The application layer was designed for horizontal scalability, allowing additional application instances to be deployed as demand increases.
The backend architecture combines several technologies, each selected for a specific workload:
- PHP + Swoole for high-performance asynchronous and coroutine-based application processing.
- MongoDB for primary application data.
- Redis for caching and high-speed data access.
- Elasticsearch for full-text search.
- ClickHouse for analytics and reporting.
This architecture allows individual services to scale according to their specific workloads rather than scaling the entire system as a single unit.
3.3 Distributed File-Serving Infrastructure
A dedicated node-clustering system was implemented to distribute file-serving workloads across multiple servers.
Each cluster is defined by a configurable criterion, such as:
- Time-based grouping — separating older and newer files using configurable thresholds.
- Activity-based grouping — organizing content based on access frequency within a defined period.
Each cluster consists of:
- One primary node
- One or more secondary nodes
The primary node is responsible for receiving file uploads and coordinating the secondary nodes.
When a cluster change is triggered by its defining criteria, the system can transition responsibility to the appropriate primary node.
Secondary nodes synchronize with their primary through event-driven synchronization processes. Operations such as:
- File creation
- File updates
- File deletion
can trigger synchronization events that keep secondary nodes aligned with the primary.
This distributed model helps spread file-serving traffic across the infrastructure while providing a structured mechanism for managing large collections of files.
3.4 Content Delivery Platform
A dedicated Content Delivery Platform (CDP) manages derived media assets generated from uploaded files.
The platform supports the generation and management of:
- Video thumbnails
- Audio waveforms
- Media previews
Separating media processing from the core application allows resource-intensive operations such as thumbnail and waveform generation to run independently without blocking normal user operations.
3.5 User & Administrator Dashboards
The platform includes a modern dashboard delivered as a Server-Side Rendered Progressive Web App (PWA).
The dashboard provides users with a central interface for managing their content, folders, analytics, searches, media, and account access.
Administrators have access to additional tools for managing the platform’s infrastructure, users, groups, files, clusters, nodes, and analytics.
Server-side rendering also provides improved initial page-load performance and supports search-engine-friendly public-facing pages.
3.6 Resource Grouping
A configurable grouping system was implemented to control the resources and capabilities available to users.
Each user is associated with a predefined group that determines their permitted resources and platform capabilities.
Administrators can define the default group and change a user’s group when required.
This provides a flexible foundation for implementing different service tiers, permissions, quotas, or operational policies.
3.7 Account Sharing & Delegated Access
The platform supports secure account delegation, allowing users to invite other users to manage their profile without sharing their passwords.
For example:
User A can invite User B to access their profile. Once the invitation is accepted, User B can switch to User A’s profile from their own account.
Access is controlled through granular permissions, meaning User B can only perform the actions explicitly granted by User A.
This provides a practical approach to team collaboration while preserving individual authentication credentials and access boundaries.
4.0 Technology & Architecture
4.1 Architecture
Software Architecture: Microservices / Distributed Architecture
The system was structured into independently scalable components, allowing application, file-serving, search, caching, analytics, and media-processing workloads to operate independently.
4.2 Core Infrastructure
| Technology | Role |
|---|---|
| MongoDB | Primary application database |
| Redis | Caching and high-speed transient data |
| Elasticsearch | Full-text and content search |
| ClickHouse | High-volume analytics and reporting |
4.3 Development Stack
Frontend
- HTML
- CSS
- JavaScript
- Vue.js
- Nuxt.js
Backend
- PHP
- Swoole
- Bash
Swoole was utilized to support asynchronous processing and coroutine-based execution for performance-sensitive backend workloads.
5.0 Core Features
5.1 API & Backend
Node & Infrastructure Management
- Real-time node monitoring
- Node health management
- Cluster management
- Primary/secondary node coordination
- File synchronization management
User Management
- User profiles
- File management
- Folder management
- Search
- Analytics
- Account sharing
- Access control
Administrator Management
- User management
- File management
- Folder management
- Analytics
- Group management
- Cluster management
- Node management
5.2 File & Media Infrastructure
The file-serving nodes provide the core infrastructure for handling uploaded content.
Key capabilities include:
- File storage management
- File serving
- Download management
- Media streaming
- Primary/secondary synchronization
- Thumbnail generation
- Audio waveform generation
- Media asset management
- Cluster-aware file distribution
5.3 User Dashboard
The user dashboard provides a centralized workspace for managing content and monitoring usage.
Features
- File dashboard
- Folder management
- Advanced search
- Analytics dashboard
- Audio and video media players
- Account-sharing management
- File and folder organization
5.4 Administrator Dashboard
The administrator dashboard provides operational visibility and control over the entire platform.
Features
- File management
- Folder management
- User management
- Group management
- Analytics
- Cluster management
- Node management
- Infrastructure monitoring
5.5 Content Delivery Platform
The Content Delivery Platform manages media derivatives generated from uploaded content.
Features
- Thumbnail management
- Waveform management
- Media asset processing
- Content synchronization
6.0 User Experience
The platform was designed around a clean and intuitive user experience while maintaining the performance requirements of a high-volume file platform.
UX & Design Features
- Modern, brand-focused interface
- Light and dark themes
- Intuitive navigation
- Responsive design across desktop and mobile devices
- Fast page loading
- Server-side rendering
- Progressive Web App capabilities
- SEO-friendly public pages
- Integrated audio and video playback
7.0 Key Results & Benefits
The resulting platform provides a strong technical foundation for high-volume file hosting and media delivery.
Scalability
The distributed architecture allows application and infrastructure components to scale horizontally as traffic and storage requirements increase.
Performance
Caching, asynchronous processing, distributed file serving, and dedicated search and analytics infrastructure help keep high-volume operations responsive.
Operational Efficiency
Centralized dashboards provide administrators with visibility into users, files, clusters, nodes, and platform analytics.
Flexible Access Control
The grouping and account-sharing systems provide granular control over resources and delegated access.
Media-Ready Infrastructure
Native support for audio and video processing, thumbnails, waveforms, streaming, and downloads makes the platform suitable for a wide range of media-heavy workloads.
Future Growth
The architecture provides a foundation capable of expanding with the platform, allowing additional application servers, file-serving nodes, and supporting infrastructure to be introduced as demand grows.
8.0 Conclusion
The SabiShare platform was successfully designed, developed, and deployed within a three-month project period.
The resulting solution combines a distributed application architecture, horizontally scalable services, clustered file-serving infrastructure, dedicated search and analytics systems, and a modern Progressive Web App experience.
The platform was built with scalability as a core architectural principle, providing the client with infrastructure capable of evolving alongside its user base, content library, and traffic requirements.
The platform is actively maintained by Greentical Solutions.
Website: SabiShare
9.0 Screenshots