Home Automation with Asynchronous Microservices

Fred George walks through a 2017 experiment with devices, events and small services.

FGFred George연사
채널
GOTO Conferences
게시일
2017년 11월 7일
영상
42:07
읽기
2분
원문
영어
YouTube에서 열기
스크롤하면 영상이 오른쪽 아래로 작아져 계속 재생됩니다. 자막은 읽기 언어를 따릅니다.
읽기 언어2개 언어로 읽을 수 있음
이 글은 아직 한국어 번역이 없어 영어 원문으로 표시합니다.
요약

30초 요약

Fred George describes a personal home-automation experiment using an event bus and small services to coordinate heterogeneous devices. His deployment shortcuts are specific to that experiment and should be evaluated against each system’s risks.

  1. 1Uncertain goalsThe speaker treats home automation as an uncertain problem.
  2. 2Device APIsDevice-specific interfaces can be isolated behind services.
  3. 3Event busSmall services exchange events asynchronously.
  4. 4Rapids and pondsStreams and stored views serve different purposes.
  5. 5Missing responsesA request may have no listener or response.
  6. 6Sticky colorsSeveral services can restore a desired light state.
  7. 7ExperimentationTesting and deployment practices must match the risk of the system.

핵심 정리

  1. The speaker treats home automation as an uncertain problem.
  2. Device-specific interfaces can be isolated behind services.
  3. Small services exchange events asynchronously.
  4. Streams and stored views serve different purposes.
  5. A request may have no listener or response.
  6. Several services can restore a desired light state.
  7. Testing and deployment practices must match the risk of the system.
전문

챕터별로 다듬은 전문 읽기

원본 자막만 보기
01

Experimenting at home

Uncertain requirements and heterogeneous devices.

In this 2017 GOTO talk, Fred George describes a home-automation experiment using small asynchronous microservices. He presents it as a personal exploration of changing requirements, not a universal architecture for every home or production system.

George distinguishes problems with predictable cause and effect from complex situations where teams must experiment and observe. He argues that uncertain home-automation goals are a useful setting for trying ideas incrementally.

He demonstrates changing lights in his home and describes a collection of devices with different APIs. The challenge is to combine them without tying every higher-level behavior directly to one vendor’s interface.

02

Asynchronous architecture

Events, streams and service responsibilities.

His design uses small services and an asynchronous event bus. Device-facing services publish observations and receive commands, while other services can react without directly calling every device-specific implementation.

He calls the shared event stream the “rapids,” filtered streams “rivers,” and stored current-state views “ponds.” This is a way of thinking about event flow and queryable state, not a guarantee of ordering or delivery.

In his “need” pattern, a service publishes a request without assuming a particular listener will respond. Asynchronous systems must handle missing responses and other failure cases explicitly.

George separates hardware access from higher-level scenes and cross-device behaviors. Monitoring services observe the event stream and can flag conflicting commands or failed components.

03

Sticky colors and lessons

State restoration, monitoring and tradeoffs.

His “sticky colors” example polls light state, publishes it and reapplies a desired color when a light comes back in a different state. Several small services cooperate without a central orchestration service.

He favors fast experimentation and abundant messages for developer productivity. In his home experiment he also argues for deploying without some tests; that tradeoff should not be generalized to systems where failures can harm people or cause significant loss.

George connects the approach to agile values, suggesting that teams working on uncertain problems may organize around experiments and feedback. He describes potential future work on sensors and smaller hardware.

같은 채널의 다른 글

슬라이드 3장39:12EN
GOTO Conferences· 2026년 10월 28일Cate Huston: How Rigour Supports AI-Assisted Development VelocityCate Huston · TwillA two-person team’s experience with release gates, automated checks, prioritization and the cost of shipping faster.AI 엔지니어링 리더십Software engineeringAI agents
슬라이드 4장22:33EN
GOTO Conferences· 2026년 10월 26일William Schor: From Unit Tests to Synthetic Canaries at NetflixWilliam Schor · NetflixHow generated workloads and production-like infrastructure help test a distributed key-value service.Software engineering
슬라이드 5장34:11EN
GOTO Conferences· 2026년 10월 23일Anatoliy Bilenko and Alberto Carretero: Making Database Protocols Reliable with Formal Methods and AIAnatoliy Bilenko, Alberto Carretero · CanonicalCanonical’s database engineers connect executable specifications, model-based tests, failure exploration, and reconstructed execution histories—and explain why none of these techniques proves a real system correct on its own.개발 워크플로와 테스트Code review & verification관측 가능성과 안정성+2
28:15EN
GOTO Conferences· 2026년 10월 22일Steve Poole on Open-Source Security and AI’s Maintenance ChallengeOlimpiu Pop, Steve PooleWhy faster vulnerability discovery increases pressure on maintainers, dependency users and upgrade processes.Software engineeringAI security
슬라이드 5장46:36EN
GOTO Conferences· 2026년 10월 21일Don Syme: Building Agentic Automation Around Human CollaborationDon Syme · GitHubContinuous AI, repository workflows and the guardrails needed for unattended software maintenance.Agent orchestrationSoftware engineering코딩 에이전트
28:23EN
GOTO Conferences· 2026년 10월 19일Learning Ash: Declarative Elixir Apps, Testing and ExtensibilityChristian Alexander, Rebecca Le, Zach DanielRebecca Le and Zach Daniel explain how their book and the framework evolved together.Software engineering