April 7, 2011 22 Comments
I’m working on a new project, migrating an existing site using custom code with a very monolithic design on top of MySQL.
Design goals : Implement all the same functionality using a manageable framework with a small footprint on a distributed NoSQL database.
Small footprint? I’m thinking Code Igniter (CI)… Distributed NoSQL (my favorite part)? I’m thinking Apache Cassandra!!!
First problem…issue, whatever you want to call it. CI is built with SQL DB tied in fairly tightly. How do I separate the two without hacking the CI core and allow me to have the flexibility of upgrading CI in the future? And at the same time being able to integrate Cassandra tightly enough to not make it stand out like
a penguin in Africa sore thumb?
Enough with the questions, I’m very new to CI so this took me about an hour to make it happen. The idea is, CI provides a $this->db object when “database” is one of the auto loaded options. I want to still have this db instance available but providing methods to access Cassandra. I also want this to be auto loaded and available in all controllers… So how? Read more of this post