Performance enhancements
We worked with Bendix and their external database partner to deliver a series of third party integrations and performance enhancements to the Bendix catalogue search.
The brief
Bendix’s product catalogue lookup tool is a core functionality of their website, comprising around 3,500 products. Bendix was undertaking a number of performance upgrades to their website to prepare for the introduction of new product lines, and improving the speed and performance of the catalogue was an essential step in this process.
To achieve this improvement, we worked with Bendix’s database provider, PARtsDB, to rebuild the integration that connected their database to the Bendix website, and implement the newest version of the PARtsDB API.
What we did
Bendix uses PARtsDB to manage their product catalogue data, which is then fed to the Craft website via a custom PARtsDB API. Over time, the existing data structure in the Craft website had become complex and multi-layered, resulting in a slower integration and longer product lookup times.
To optimise the performance of the catalogue, we decided to go back to the drawing board to aanalyse the different types of product in the Bendix database, the relationship between product attributes, and how these could be represented in Craft in a cleaner way. We undertook a comprehensive data modelling task to redefine the data relationships into three clear entities: vehicles, products, and applications.
As PARtsDB had just released a new version of its API, we took the opportunity to rewrite our integration in order to translate the data from PARtsDB into our new data model, so that it could be fed to Craft in a more streamlined and performant manner.
How we did it
The existing integration between PARtsDB and Craft ran daily, downloading and updating the entire Bendix product catalogue (approximately 3,500 products) over the space of many hours. In rewriting the integration, we built a custom functionality that would be able to identify which items in the database had changed, and only update those specific items each time the integration ran. Rather than taking hours to update the entire product catalogue, the new integration updates only what is new or has changed, reducing integration time to a matter of minutes.
The new integration was built using AWS Lambda and Step Functions, combined with a custom Craft plugin that makes use of Redis for caching and indexing. Rather than loading data from the database directly for each page load, the website reads from the Redis index.n. By allowing data to be read from and written to this Redis layer, the Craft site is able to load in new data much faster, resulting in quicker page loads and a more performant user experience.
Solution
The performance enhancements have resulted in a notably faster catalogue search process, and have reduced the time of the daily PARtsDB integration from hours to mere minutes. This results in a faster and more efficient user experience for all Bendix website visitors, as well as easier content management for the Bendix team.
It's always fun and rewarding taking a complex system, stripping it right back and rebuilding it as optimised as possible. It's a great feeling being able to remove technical debt and transform it into something truly awesome!
Let's work together
Get in touch