Domain-Driven Design Lite: The Useful 20% Bounded contexts, ubiquitous language, and avoiding the DDD trap.