Having constraints and guarantees about the way a program executes makes it much easier for developers to reason about concurrency.;It's a common belief that providing serializability, one of the strongest forms of consistency in transaction processing, is too expensive for general use.;We describe research that introduces new techniques for making conflicting serializable transactions faster, on both multi-core and distributed systems.