Scaling State
Microservices are great to split the functionality of an application across multiple processes, containers or vms. At their core however, there are still the age-old concepts of rpc, publish-subscribe and work queue, with the central state of our application is stored in a database. With that, we need to answer the same age-old questions, - How can we support a constantly changing state? - How can we move streams of data across our microservice network? - How can we split system state across multiple processes, containers or vm? Enter Upring. Upring is a library to support application-level sharding of “live” data, it supports node streams, and enables every developer to implement application level sharding. What can we shard? As an example, Upring allows to connect two user with a bidirectional communication (the beloved websocket) across hundreds of machines. At its core, it is a state discovery system. About Matteo Collina Matteo is a code pirate and mad scientist. He spends most of his days programming in node.js, but in the past he worked with Ruby, Java and Objective-C. In 2014, he defended his Ph.D. thesis titled "Application Platforms for the Internet of Things". Now he is a Software Architect at nearForm, where he consults for the top brands in world. Matteo is also the author of the Node.js MQTT Broker, Mosca, the fast logger Pino and of the LevelGraph database. Since last December, he is a Node.js collaborator, maintaining UDP and Streams. Matteo spoke at several international conferences: Node.js Interactive, NodeConf.eu, NodeSummit, LXJS, Distill by Engine Yard, and JsDay to name a few. He is also co-author of the book "Javascript: Best Practices" edited by FAG, Milan. In the summer he loves sailing the Sirocco.