A perception among several folks (especially [[Serverless skeptics]]) is that serverless architectures are either: - [[Microservices MOC]] (or [[Nanoservices]]) by definition; or: - They force you to adopt microservice aspects, either by tooling or through the advice from documentation or well-known [[Serverless advocates]] Certain people who have been burned by [[The Problems with Microservices]] in the past and now have a strong preference for [[Monolithic architecture]] architectures are usually the most vociferous about this. An example of this line of thinking was given by [[@David Heinemeier Hansson|DHH]] ([[Serverless skeptics]]) on [Twitter](https://twitter.com/dhh/status/1225118243108474880): > __"Trying to make an entire application, like a Basecamp or Shopify or GitHub or just about anything, out of serverless takes all the bad ideas of microservices and says "BUT WHAT IF WE JUST DID MORE OF THEM". Profoundly misguided."__ DHH also wrote [[The Majestic Monolith (article review)]] in 2016 outlining his belief that small teams should choose a monolithic architecture. ## Countering this objection Serverless applications should not be inherently considered as microservices. They are unquestionably a distributed system but they don't necessarily have to adopt several other attributes of a [[Microservices MOC]] architecture that give rise to [[The Problems with Microservices]]. For example: - [[Serverless applications can be deployed monolithically]]. In fact, I often contend that [[Most new serverless apps should start as a monolith]]