The challenges with layered architecture are as follows:
- Deployment: As the code is still somewhere tightly coupled, we cannot guarantee that we can deploy each layer independently of one another. We may still end up doing a monolithic deployment.
- Scalability: As we are still looking at the whole application as a monolithic deployment, we cannot scale components independently of one another.