Moving from Apps to Services

Location: D135 Level: Intermediate
Average rating: ***..
(3.80, 5 ratings)

Many Django applications start as monolithic apps, the next step is often to break these out into individual Django apps in a larger project. This is a great step, but still requires you to use code as your contract you talk across. As teams scale before 5-6 people this introduces complexity and often many bugs over time. The effective way to continue to scale teams is to define services that talk across defined API’s and data contracts. This allows you to iteratively version services and continue to improve them while still supporting backwards compatibility.

At Heroku we’ve experienced this ourselves heavily, as we’ve grown from a 25 person team to a 75 person team in a year (primarily of engineering growth). We’ve focused many scaling challenges from a team perspective, but the biggest learning curve has been enabling teams to scale by constructing many services internally that are consumed by other teams. By engineering components around services from day one you reduce growing pains that often occur later in companies as they grow their teams.

This is something that Amazon has done extremely well, while other large companies such as google have struggled with this as highlighted by this post:

In addition to experiencing this first hand, from interacting with users of the Heroku platform this a common growing experience for developers. I’ve seen many cases of where bottlenecks are for users and hope to help many this an easier transition for developers. We’ll walk through the problems that using Django apps create, how to design for a services architecture from day one, but perhaps most important of all how to take any application from monolithic to a services model.

Photo of Craig Kerstiens

Craig Kerstiens


I’m an engineer and product guy at Heroku. I’m part engineer, working on business tools and analytics in my daytime hours and building web apps in my night time hours. I’m part product guy, helping steer product teams at Heroku and making sure our engineers are enabled to be productive and users receiving value. I love efficiency, efficient engineering, efficient processes, and efficient collaboration.

Comments on this page are now closed.


Picture of Christopher Neugebauer
Christopher Neugebauer
07/27/2012 2:30pm PDT

Not enough material for the timeslot. What was presented didn’t have much re-usable technical detail.

That said, the topic was interesting, and the concepts were good.


For information on exhibition and sponsorship opportunities at the conference, contact Sharon Cordesse at (707) 827-7065 or

View a complete list of OSCON contacts