Modeling complex problems is hard and often leads to very complicated code. Controllers, repositories, services, conditions, forms - client’s business requirements sometimes infiltrate all these layers, everything is mixed together, making code really difficult to read, understand and develop. When you want extend business logic, but you need to dig in tens (or even hundreds) lines of controller action, trying to understand what are all these objects for and what other places should be changed too, it’s time to try different approach… "Thinking in events" means that you can be fully focused on problem domain, implementing testable business logic and associated rules, not on database, web framework or other implementation details. During this workshop you will learn how to use event/command buses in your app, apply Event Sourcing to store all history or split reads from writes with CQRS to increase performance, scalability and security. Being concentrated on client real problem the same time, without any distractions from code.