-
Pagoda finds help in NYC
Ian and I spent the last week of January in New York City staying with some friends. While visiting, we had a chance to meet up with Michael Bayer, developer of SQLAlchemy. As I’ve discussed before, we rely on SQLAlchemy’s advanced mapping features for Pagoda’s database layer. Unfortunately, after spending months developing many different solutions to our problem, we still didn’t have code that was up to our standards.
We are very uncompromising in our vision. We want to store content in a database, to support relationships and efficient querying. We want to support translations of that content, without lots of data duplication. We want to support revisions and changesets, which will be the building blocks for content staging. And we want development of new models (third-party content types) to look familiar to existing SQLAlchemy developers.
So we secured some funding for Mike Bayer’s project, baked him some banana bread, and spent all day in coffee shops with him. And I’m pleased to say that we’re in a new spot now. Our design is different, and some attention has been given to areas of SQLAlchemy that benefit us.
In short, we traded some complexity at the query level for some complexity at the Python level. One of my favorite features of our old model was that you could easily insert rows into any table in the database by hand, without the mapper layer at all and without much thinking, and the mapper could construct the correct objects (composed of multiple tables) due to our smart query. Now we are very dependent on the mapper doing the right thing, inserting multiple dependent rows based on some careful rules. But the queries are much simpler.
Because this is taking so long, we occasionally have to take a break to actually make some money. Other than that, Pagoda is still going strong. We just can’t yet afford to work on it full time. Hopefully that will change soon. Until then, thanks to everyone who has shown interest or, like Mike, taken time to help us.