Review: Data Abstraction for Large Web Applications

There may come a day when the data source for a web application isn’t a database by default, and the message of this presentation was plan for that day.  This talk, given May 9 during DC PHP Developers’ May meeting at Fathom Creative’s office in DC, was useful to developers of applications large and small.  The presenter was Brandon Savage, a software developer for Mozilla.  Savage pulled from his experience working on Socorro, Mozilla’s web application for handling crash data for applications like Firefox and Thunderbird, to illustrate the importance of building web application data layers thoughtfully and with the future in mind.

According to Savage, creating a scalable data layer can be achieved by doing four things while planning and coding a web application: separating code for data usage from code for data retrieval, organizing the code into components based on the actions the code performs, building applications to be “storage agnostic”, and choosing the correct type of data source from the start.  While all of these steps may be particularly pertinent to an application with terabytes of data, like Socorro, all applications can benefit from this type of forethought.

It could be argued that the presentation needed a few more code samples, but seeing as Savage’s guidance can’t be implemented in a formulaic manner, additional code snippets may have been pointless.  Overall, this was a laid-back meeting, no doubt aided by the abundance of beer.  Also, a small aside, Fathom Creative’s office is beautiful and worth seeing in person.

Savage’s slides are available online: