Engineering the Future of Software
29–31 Oct 2018: Tutorials & Conference
31 Oct–1 Nov 2018: Training
London, UK

Distributed systems are a UX problem.

Tyler Treat (Real Kinetic)
14:1515:05 Tuesday, 30 October 2018
User experience design
Location: Blenheim Room - Palace Suite
Secondary topics:  Anti-Pattern, Best Practice
Average rating: **...
(2.74, 19 ratings)

Who is this presentation for?

  • Architects, engineers, and those working in UX

Prerequisite knowledge

What you'll learn

  • Understand the interplay between system design, architecture, and business rules and how UX drives architecture as much as architecture drives UX
  • Explore patterns and anti-patterns for designing reliable systems, business implications of distributed systems, and trade-offs that involve multiple functions of the business

Description

Distributed systems are not strictly an engineering problem. It’s far too easy to assume a backend development concern, but the reality is there are implications at every point in the stack. Often the trade-offs we make lower in the stack in order to buy responsiveness bubble up to the top—so much, in fact, that it rarely doesn’t impact the application in some way.

Distributed systems affect the user. We need to shift the focus from system properties and guarantees to business rules and application behavior. We need to understand the limitations and trade-offs at each level in the stack and why they exist. We need to assume failure and plan for recovery. We need to start thinking of distributed systems as a UX problem.

Tyler Treat looks at distributed systems through the lens of user experience, observing how architecture, design patterns, and business problems all coalesce into UX. Tyler also shares system design anti-patterns and alternative patterns for building reliable and scalable systems with respect to business outcomes.

Topic include:

  • The “truth” can be prohibitively expensive: When does strong consistency make sense, and when does it not? How do we reconcile this with application UX?
  • Failure as an inevitability: If we can’t build perfect systems, what is “good enough”?
  • Dealing with partial knowledge: Systems usually operate in the real world (e.g., an inventory application for a widget warehouse). How do we design for the “disconnect” between the real world and the system?
Photo of Tyler Treat

Tyler Treat

Real Kinetic

Tyler Treat is a managing partner at Real Kinetic, where he helps companies build cloud software. Previously, Tyler worked on NATS, an open source high-performance messaging system for cloud-native applications, at Apcera and architected Workiva’s microservice messaging platform. As an engineer, he’s interested in distributed systems, messaging infrastructure, and resilience engineering. As a technical leader, he’s interested in building effective teams. Tyler is also a frequent open source contributor and avid blogger at Bravenewgeek.com.