We often accumulate a set of systems over years of gradual development. Each generation of developers added its contribution to a code base that is beyond rewritable, and in some aspects does not make sense to our end-users. In addition, these systems often embody years of on-premise practices and assumptions, that grew into a culture that eternalizes its inherent flaws. For example the old premise systems rely on replication to mitigate the fact they are no highly available or built for high loads. Their server authentication methods are simple and do not enforce the semi standards anyone that is accustomed to oauth2.0 expects.
How do we build a cloud system that connects to these systems? How do we avoid replicating the same old on-premise habits into the new systems? Should we also change the expectations of developers that are used to existing set of assumptions when they integrate with our new systems?
In this talk I would like to share with you some of the insights I had facing these type of problems.