Self Assembling Processes

I’ve always been fascinated with the idea of software components that can be easily wired together to provide new functionality. In a recent tech blog post, Netflix has gone further with the wonderful idea of self-assembly.

Why Self-Assembly

The argument is that manual wiring of components do not scale. It is necessary for developers to dig into the code to understand how a complex process works. Manual creation of complex processes increases the cost of scaling the team since minimum ramp-up time is directly proportional to system complexity.

Simply put, higher productivity is gained when developers move from an imperative style (manual wiring of components) to a declarative style (declare inputs and outputs and the system handles the rest). This notion of highly productive declarative programming is certainly true in the world of spreadsheets and database programming (SQL).

The post goes on to describe self-assembly in a clear fashion but does not fully explain the details of how it really works. The remainder of this article attempts to independently work out how self-assembly might work in more detail.

How To Self-Assemble

coming soon…

References

  1. http://techblog.netflix.com/2014/06/building-netflix-playback-with-self.html
Written on August 10, 2015