Speaker: David Julia
Twitter: DavidJulia
In a Microservices Architecture
Services are cheap and fast to deploy and change independently.
Spring Boot
Simple and cheap to spin up a new microservice!
Autoconfiguration
Legacy Environment
An environment wherein many systems that are hard to change are in dire need of replacement or augmentation to meet business demands.
The importance of DDD in Legacy Environments
Domain-Driven Design is key! Lean on it!
Don’t couple your domain model to your legacy system’s models
You need to evolve to Microservices
appcontinuum.io
Succession Patterns
- Strangler Application Pattern
- Characterization tests – a vice
What’s the plan?
- Identify behavior we need
- “Sprout” a new class to hold behavior we want
- Start moving behavior into that class
- Sprout a component (JAR)
Premature Extraction
- Extracting a Service too early can be costly
- It’s easier to refactor the system with an in-process component
- Only have to change things in one place
What did we just see
- Started with a ball of mud
- Identified/Extracted behavior into new classes
- Packaged classes as JAR
- Created a new service (strangler application)
- Did all of this safely and with high confidence
Links
Simon Brown on Modular Monoliths
Working Effectively with Legacy Code