You Keep Using That Word • Sam Newman • GOTO 2023

Experience the importance of context in technical discussing, as speaker Sam Newman delves into the misinterpretation and misuse of the term "async" in computing, and how it relates to event-driven systems, consensus and communication.

Key takeaways
  • Asynchronous should not be used without context, as its meaning varies.
  • The Oxford English dictionary defines asynchronous as “not synchronous”, but this definition is not precise.
  • In computing, asynchronous can mean different things, including non-blocking and eventual consistency.
  • Event-driven systems can be thought of as middleware, with an intermediary responsible for processing and forwarding requests.
  • Synchronous communication involves a direct sender-receiver relationship, whereas asynchronous communication involves an intermediary.
  • Non-blocking calls are not asynchronous, as they do not block waiting for a response.
  • Both synchronous and asynchronous calls can be used in microservices architecture.
  • Stateless processing can be beneficial in some cases, but it’s not always necessary.
  • Temporal coupling can occur when dependencies between services are not properly managed.
  • Consistency and availability are important considerations in distributed systems.
  • The Reactive Manifesto provides a framework for understanding and designing reactive systems.
  • Event-driven systems can help to improve scalability and robustness by allowing for decoupling and parallel processing.
  • Misuse of the term “async” can lead to confusion and miscommunication.
  • Context is crucial when discussing technical concepts, and the term “asyhchronous” is no exception.