Principles and examples to help you reduce tech debt and enable new feature development, with microservices when you've got a whole lot of legacy applications.
the behavior we want • Start moving behavior into that class • Extract a component (JAR) and break dependencies Could stop here and use the library in our mobile API gateway. Or continue on and extract a service.
mutating operations (edits/deletes)!” Same basic strategy, one modification: Noop in your new service implementation Log what you “would have done” • This is just one example of succession. Creativity is often required :)
service too early can be costly • It’s easier to refactor the system with an in-process component • Easier to change your abstractions (interface changes) • Only have to change things in one place
• Extract a service, implement a remote façade at the seam we created • Point iOS application API Gateway at the service • Celebrate! **for more info on when to extract a microservice vs stay with shared libraries, see Mike Gehard’s talk
of mud • Identified/Extracted behavior into new classes • Packaged classes as JAR • Created a new service • Did all of this safely and with high confidence • Conveniently left the complex topic of splitting out the data for a future talk ;)