ShardFS

CLI
Distributed Systems
Backend
Storage
Dashboard
ShardFS

Tech Stack

Node.js
Typescript
express.js
PostgreSQL
Docker
Redis
React
Socket.IO

Description

ShardFS is a distributed file system inspired by GFS/HDFS, designed for scalable and fault-tolerant storage. Large files are split into shards, distributed across nodes, and replicated to guarantee durability and availability.

It features a central metadata service for shard indexing, node health tracking, and orchestration of uploads/retrievals. Redis was used as a caching layer for hot metadata, reducing lookup latency.

Alongside the CLI, a real-time monitoring dashboard was built to visualize cluster health, shard placement, and I/O statistics, enabling better observability.

By supporting parallel uploads and downloads, ShardFS achieves higher throughput for large datasets, while its replication strategy ensures resilience against node failures.

  • Built a distributed file system with sharding + replication.
  • Designed automatic fault recovery for high availability.
  • Implemented metadata service for shard indexing and node coordination.
  • Developed realtime monitoring dashboard for system observability.
  • Dockerized cluster setup for reproducible testing and deployment.
  • Optimized performance with parallel shard fetches.

Page Info

System Overview

Architecture diagram showing how files are split into shards, replicated, and distributed across storage nodes with metadata service orchestration.

/experience/shardfs/overview.png

Upload CLI

Example of uploading a file via CLI. The system splits it into shards, replicates them, and updates metadata service.

/experience/shardfs/upload-cli.png

Retrieval CLI

CLI command fetching shards in parallel from distributed nodes, reconstructing the file seamlessly for the client.

/experience/shardfs/retrieval-cli.png

Fault Tolerance Demo

Terminal output showing successful file recovery when one node fails, leveraging shard replicas for high availability.

/experience/shardfs/fault-tolerant.png

Realtime Dashboard

A web dashboard showing live system metrics such as shard distribution, node health, active connections, throughput, and replication status.

/experience/shardfs/dashboard1.png/experience/shardfs/dashboard2.png