A greenfield environment is a setting for developing a new application without preserving or integrating an existing implementation. Building from scratch is usually simpler than refactoring a legacy codebase because the work does not depend on its particular constraints. section 1.1
A greenfield environment is especially useful for learning a microservices-first approach. Starting with a fresh application makes it possible to experience the techniques directly before developing a strategy for converting an existing monolith. section 1.1
Treat greenfield development as an opportunity, not a guarantee of architectural perfection:
- Choose an appropriate position on the spectrum between monoliths and microservices rather than assuming that microservices are always correct. section 1.13
- Use the freedom of a new application to pursue an idealized microservices design, while recognizing that maintaining this direction requires discipline. section 1.13
- Expect real-world development to remain complicated and allow incremental movement toward microservices instead of demanding a perfect implementation. section 1.13
Starting a new application
A team developing a fresh application can begin with a microservices-first design. After gaining that experience, it can more clearly identify a route for converting an existing monolith, even though that later work remains demanding and dependent on the legacy codebase. section 1.1
Figure 1.7 It’s not just monolith versus microservices: there’s actually a spectrum of possibilities.
Use the spectrum to compare a greenfield microservices design with monoliths, helper services, and mixed architectural arrangements. section 1.13


