# Apps to Services

DevFeed: [Apps to Services](<https://devfeed.tech/articles/apps-to-services-41110.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2012/04/13/Apps-to-Services/>)

Author: Map

Published: 2012-04-13T20:55:56Z

Content type: opinion

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Django](<https://devfeed.tech/topics/django.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [service](<https://devfeed.tech/topics/service.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Hanami](<https://devfeed.tech/topics/hanami.md>), [Java](<https://devfeed.tech/topics/java.md>), [.NET](<https://devfeed.tech/topics/net.md>)

Tags: [communication](<https://devfeed.tech/tags/communication.md>), [django](<https://devfeed.tech/tags/django.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [java](<https://devfeed.tech/tags/java.md>), [net](<https://devfeed.tech/tags/net.md>), [python](<https://devfeed.tech/tags/python.md>), [rails](<https://devfeed.tech/tags/rails.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [services](<https://devfeed.tech/tags/services.md>), [web](<https://devfeed.tech/tags/web.md>)

## AI overview

The article argues that Django's reusable app model can become difficult to maintain as applications grow, code bases expand, and releases slow. It proposes decomposing larger applications into smaller services that communicate through defined web contracts or APIs, while acknowledging that monolithic applications can scale.

## Source excerpt

Update the talk for this is now viewable on YouTube here When I first came across Django I was an immediate fan. It featured: Good documentation Steady but stable progress Community around apps which encouraged DRY I've been a user off and on depending on my needs for nearly four years since discovering it, and throughout that time all of the above have remained true. However, as I've worked on and encountered more complex applications there's one thing that has time and again broke down for me, which is the Django apps model. It hasn't broken down due to Django only though, I've seen it break down in Ruby (Rails), Java, .Net, take you're pick of language or framework. The breakdown of this model is due to several things: Successful applications grow which mean more complex applications and more developers More complex applications often mean larger code bases Deprecating code is good, but not always easy in large code bases More code means more testing, but slower releases At Heroku one way we often describe the platform to others is "A distributed Unix in the cloud." There may be many reasons for this, but one of which is that we love the Unix approach and philosophy of Small sharp tools. Sticking to that, many of our internal pieces are small individual apps that talk across defined contracts or APIs. Back to Django's app structure... Many people build apps and re-use them and often share them with the world. This is truly great for re-usability, which means you can focus on building key features. However, this does not enable your application to be more maintainable in the future nor does it enable scalability. Yes, you can absolutely scale a monolithic application, but it doesn't mean you should. This doesn't mean the app structure is entirely broken, it just means that it is a partial step to where you should be. The real solution is to build more of these pieces of your greater application as services. A Django app is defined as A web application that does some