Being prepared for changes is definitely one of the most challenging assignments for a programmer. The shifts and modifications may impact almost every part of your project - from business logic to data structure. But each revision in data structure requires preparation of migration scripts and that is rather onerous, time-consuming and error-prone task. Is this really inevitable?
Of course it is not and I’ll make an attempt to convince you all of that fact. During the presentation two well known design patterns will be analysed - Event Sourcing and CQRS (Command Query Responsibility Segregation). Both of them will prepare you for unexpected changes, as well as make your application ready to adjust. I will describe how changes to the database could be introduced faster and in a safer manner (no more migration scripts!). Last but not least, we will have a look at the scaling, because thanks to separating the writing and reading data from each other you can relevantly increase scaling level and thereby cooperate with a range of diverse data sources.