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