Patterns and Anti-Patters exist - for architecture, for coding, & for pretty much everything.
At Smarter.Codes we often build software-as-a-service. Thanks to guys at Heroku, they introduced a methodology that SaaS apps must embrace. Sit in your favorite yoga pose comfortably and read this wonderful guide at 12factor.net
Monolith architectures are simple to build but quickly become costly to maintain as the code size increases. Hence at Smarter.Codes we want to hence Microservices architecturewhich promises highly modular code which is cheaper to maintain.
The greed to ship something using Microservices can easily land teams into trouble if they are not skilled enough. Hence you must probably write sandbox code atleast for 2 weeks before contributing in a production scale microservices project. You can also consider building a monolith first and later breaking monolith into microservices. But there is counter argument to that.
At Smarter.Codes we have taken the opinioned approach to start head-on with Microservices - unless there are strong arguments keep it monolith.
On the surface, 12factor seems microservices friendly. But nginx shares wisdom on how to improvise 12factor so that it fits nicely with microservices architecture
At Smarter.Codes we have lost so much of engineering man months because of
- Our code not being able to quickly scale horizontally.
- Integration hell resulting in our finished pieces of code to reach too long to reach production servers.