Wednesday, August 21, 2013
09:30 AM - 10:00 AM
|Level: ||Technical - Introductory|
Every piece of software you've ever used of even the slightest complexity has had bugs in it, so it's a mistake to think that your code is 100% correct. You will deploy bugs to production and the effects will be unpleasant. Bugs are particularly hard to deal with when they can cause permanent change, such as deleting or corrupting data. Rather than live in fear of bugs, it's better to treat them as a fault in your system just like any other fault, whether disks breaking or machines getting overloaded.
Bugs are one of many forms of uncertainty in a long-lived data system. Another form of uncertainty is the future requirements of your software. How do you make sure your code and datastores will be able to support the requirements of tomorrow?
There are architectural principles which address the uncertainties in data systems, making your systems more resilient to bugs and more adaptable to the future. These principles are extremely relevant in the modern, NoSQL world. In this session we'll explore the various sources of uncertainties in data systems and the architectural principles which address them.
Nathan Marz is currently working on a new startup. Previously, he was the lead engineer at BackType before being acquired by Twitter in 2011. At Twitter, he started the streaming compute team which provides and develops shared infrastructure to support many critical realtime applications throughout the company. Nathan is the creator of many open source projects which are relied upon by over 50 companies around the world, including Cascalog and Storm. Nathan is also working on a book for Manning publications entitled "Big Data: principles and best practices of scalable realtime data systems" due out for publication later this year.