When working in a project as big and complex as PrestaShop, it’s easy to get too focused on what you are doing right now, and lose sight of the big picture. However, it’s very important not to do that, because every decision we take must be coherent with a bigger plan. In fact, I think that the only way to allow a project such as this to be sustainable, coherent and predictable, is to consistently challenge every decision in light of a long-term vision.
But what’s the vision for PrestaShop’s future architecture? When I arrived at PrestaShop about a year and half ago, the migration to Symfony had been ongoing for a while, but there was no clearly defined goal in mind — or at least, none that was written down somewhere I could find.
So a little more than a year ago, we started working on this subject. Until now, we had never managed to go beyond a couple of diagrams and word-of-mouth discussion, and actually write it down so that it could be shared with everyone.
It started with an in-depth analysis of the state of things in PrestaShop 1.7. What are the main components? How do they interact? Where are the main pain points?
Once we had all the building blocks laid out, we started thinking how we could rearrange them to make them work better, disregarding current constraints. What would we want PrestaShop to look like?
This exercise allowed us to have a much better view of what we needed to do: once we had point A and point B, now we only needed to figure out a plan to “connect the dots” and go from the starting point to the end point. And while we get there, every decision we make has to bring us closer to B.
During the last year, you may have seen me at PrestaShop events describing (although very briefly) what point B, aka The Future Architecture, looks like. Either way, I think you will enjoy reading this updated, more thorough insight of Where we are, Where we are going, and Some ideas on how we’ll get there.
Since this analysis is quite long and very information-dense, we decided to split it in four parts, that we’ll publish during the following weeks:
- The Current Architecture (or “Point A – Where we are”)
- Pain Points (or “What needs to be improved”)
- The Future Architecture (or “Point B – Where we are going”)
- Connecting the dots (or “Some ideas on how we’ll get there”)