Challenge 3: Scaling the persistence layer

Added basic sharding and external file request (webserver).

Messages are grouped based on md5_digest(id[0]).

Before starting: ``` npm install ```