I'm going to start with a list of links that I recognize have been formative to my understanding of scalability.
SEDA: An Architecture for Highly Concurrent Server Applications and then C10K
- Reading the SEDA thesis and then the C10K site helped me understand that simple imperative programming might not always scale...
REST: Architectural Styles and the Design of Network-based Software Architectures
- REST identifies scalability as a key property for internet information architectures. The Stateless Client-Server, Cache, and Layered System constraints all contribute to the scalability of systems.
- Most recently this paper by Pat Helland influenced my thinking: Transactions can only bound a single entity, but that entity can contain various pieces of data including historical communication entries to help support idempotent messaging.