Strange Loop

As We May Do -- Augmented Reality and Computer Vision

Today's applications and services are expected to be "distributed by default." Operational requirements demand that new applications be deployable on one server or a hundred – coordinating work, balancing load, and handling failures cleanly by redistributing work when nodes fail. While this is straightforward for stateless, shared-nothing applications like web or worker tiers, those which require coordination prove more complex.

Faced with this challenge in building a distributed streaming analytics engine and its supporting self-coordinating, fault-tolerant services, Boundary's developed and open-sourced a JVM-based clustering library called Ordasity [1]. Since its release last fall, community members have contributed documentation, patches, along with an additional implementation written in Go.

Built atop ZooKeeper, Ordasity is an implementation of a pattern for creating masterless, self-organizing services. With this pattern abstracted away, engineers can write clustered services in as little as 25 lines of code backed by solid operational tooling that provides graceful draining, hot handoff of work between nodes, continuous automatic load balancing, and a clean admin interface.

Using this framework as an example without restricting focus to it alone, this session offers a deep dive into techniques for coordination, load balancing, methods of containing cascading failures, and designing for resilience in distributed applications, along with a demo of building a service that accomplishes the same in five minutes.

--- [1]

Neil Milsted

Neil Milsted