We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
You Keep Using That Word • Sam Newman • GOTO 2024
Learn why terms like 'asynchronous' and 'synchronous' cause confusion in system design. Sam Newman explores precise terminology and patterns for better communication.
- 
    Words like “asynchronous” and “synchronous” have multiple competing definitions, especially in the context of inter-process communication, leading to confusion and misunderstandings 
- 
    Rather than using ambiguous terms, focus on describing specific behaviors and requirements: - Temporal coupling/decoupling
- Blocking vs non-blocking
- Latency requirements
- Response handling needs
 
- 
    Brokers and intermediaries enable: - Temporal decoupling
- Guaranteed message delivery
- Parallel processing
- Better scalability
- Improved system robustness
 
- 
    Stateless processing is preferable to stateful processing for distributed systems: - Easier to scale
- More resilient
- Better suited for parallel operations
 
- 
    Context is crucial for effective communication about system design: - Define terms explicitly within your team
- Focus on describing desired behaviors and outcomes
- Use more precise terminology instead of overloaded terms
- Consider the specific needs of your application
 
- 
    Non-blocking operations can improve performance but: - May still require waiting for responses
- Don’t automatically solve all problems
- Need to consider failure scenarios
- Should match actual application requirements
 
- 
    Event-driven systems tend to be: - More loosely coupled
- Better at handling scale
- More complex to reason about
- Harder to debug and maintain
 
- 
    When designing system interactions, consider: - Required response times
- Failure scenarios
- State management
- Message delivery guarantees
- User experience needs