Data Diffing Based Software Architecture Patterns
Clojure has been heralded as a pioneer in data oriented functional programming. In this talk, Huahai will explore the use of Clojure data diffing/patching library as a tool to simplify software architecture and solve complex engineering problems. After briefly describing EditScript, a Clojure data diffing/patching library, he will detail several usage patterns by drawing from code examples in our production system.
Huahai will discuss how diffing improves system modularization by reducing namespace dependencies; how it drastically simplifies client-server communication to drive much faster UI iterations; how it enables massive scaling by turning stateful applications into stateless ones; and how it powers collaborative editing of online documents.
This talk is for everyone who are interested in expanding their data oriented functional programming tool box.
Huahai is CTO of Juji, Inc., an artificial intelligence company that builds conversational systems that understand people. Prior to co-founding Juji, Inc., Huahai was a Professor of Information Science at SUNY Albany and then a Research Scientist at IBM Research and IBM Watson. He earned a Ph.D. from the University of Michigan in a field that intersects Psychology and Computer Science. He has written award winning software and has coded mainly in Clojure since 2012.