Over the past three weeks, I worked on an implementation prototype for our server architecture. I researched and found more implementation tutorial content, in both video and website form, on NodeJS over Tornado to use as a web framework technology. I presented this info to the team and we collectively agreed to switch our intended stack to NodeJS for convenience.
While Nakul worked on the high-level aspects of the application (e.g. the video player), I delved into the internal structure of how our server architecture can send and receive data. I learned about Express, NodeJS’s internal back-end framework, which was useful in creating data streams that can send small pieces of data in sequence. I experimented with this feature to create simplistic data streams across nodes that can be rerouted manually. I am now working on a smoother process for ensuring the correct data can be sent to specific nodes.
After that Nakul and I will work on integrating our current work into a unified codebase. We expect to create an application that can deliver a functional, locally deployable multi-tier video stream. Though the tiers will likely be nominal, featuring roughly two nodes within each, they can show a proof of concept for the load balancing task. The small app can function as an early, local test for our traditional and more easily implemented load balancers. The data stream could be rerouted between the few nodes randomly or in order (RandomLB and RoundRobin respectively).