@pyr Scalability “The ability of a system, network, or process to handle a growing amount of work in a capable manner or its ability to be enlarged to accommodate that growth” - Wikipedia
@pyr ● It’s hard to break out of the big iron mental model ● It’s hard to change our trust model ○ “I want to be able to see my servers!” ● There is still an upper limit on node size ● Horizontal-first approach to building infrastructure
@pyr ● Consistency: Simultaneous requests see a consistent set of data ● Availability: Each incoming request is acknowledged and receives a success or failure response ● Partition Tolerance: The system will continue to process incoming requests in the face of failures
@pyr Inspectable services Queues over RPC Degrade gracefully Prefer concerned citizens Configuration from a service registry Nodes as immutable data structures
@pyr Keep track of node volatility Reprovisioning of configuration on cluster topology changes Load-balancers make a great interaction point (concentrate changes there)
@pyr The service registry is critical Ideally needs to be a strongly consistent, distributed system. You already have an eventually consistent one: DNS!