A Flexible Plugin-Like Data Layer: Decouple Your Application Logic From Your Data

Juan Soprano, Director of Software Development, Pixable Inc.

October 24 2012

Slides

In Pixable we have migrated from/to different data storage solutions. To accomplish this, we've built a plugin-like data layer to allow complete separation between application code and data storage. In fact, the whole migration from MySQL to MongoDB was performed over this layer, helping us to move chunks of data little by little while learning how the system behaved under the new configuration. During the process, we managed to maintain duplicate copies in MySQL and Mongo for a while until the transition was complete. All of this happened in a way almost transparent to the applicaton code, requiring very little changes in the code. During this talk, we are going to show how we built this architecture and how easy is to integrate other data storages (memcached, S3, etc) on it. We will also share some tips that we've learned down the road and pros/cons of working under this schema.