In April of 2020, kubotausa.com, the primary website of the Kubota Tractor Corporation for the United States region, was transferred from an on-premises solution and onto Sitefinity Cloud. While the transition wasn’t without a few hiccups, Sitefinity Cloud has been able to maintain excellent performance using a combination of caching, CDN and pre-compilation. By taking away the burden of DevOps, our team was able to focus entirely on producing new features for the website while Sitefinity experts at Progress made sure the site was running smoothly and was consistently available. A little more than a year later, kubotausa.com was awarded the Sitefinity Website of the Year award in the Sitefinity Cloud category. In the rest of the article, I’d like to share how Sitefinity Cloud’s emphasis on caching helped us to create an excellent web experience, as well as share some of the pitfalls and lessons learned when working with the new platform.
Caching and Precompilation – Sitefinity Cloud’s Superpower
It’s not a secret to anyone that has worked with Sitefinity’s content API that the ORM access layer is slow by modern standards. When creating complex models from multiple, related content types the ORM will leave your visitors bored while the server builds the page from dozens of tables in the database.. Sitefinity Cloud addresses this issue by making sure the end-user never has to wait on this tiresome process. When any code changes are made to the website, Sitefinity Cloud goes through a pre-compilation step, where all of the pages and page templates on the website are loaded at once before the site is live. When everything is ready, the site is loaded into the production slot and replaces the previous version, with the pre-built pages ready to go in the cache. Rather than waiting several seconds for the server to build the requested page, Sitefinity Cloud serves the pre-built page in milliseconds.
Cache Invalidation – Sitefinity Cloud’s Kryptonite
Working with cache means developing cache invalidation strategies. After all, if there is no way to signal to Sitefinity that a page has been updated, the platform will happily serve the same, stale content for as long as the cache’s time to live, which in our case is dozens of hours. For feather widgets, a type of widget built-in to Sitefinity’s page editor for each content type, cache invalidation is already implemented. However, for custom widgets, which make up the bulk of the development for KubotaUSA.com and other TracTru Sitefinity projects, cache invalidation must be configured manually. Fortunately, the Sitefinity API allows you to register a cache dependency on a content item using the item’s ID. One of the hurdles that our team had to overcome during the development process was always thinking of cache invalidation when designing our custom widgets.
Overall, working with Sitefinity Cloud has been an enriching and rewarding experience, and we are honored to have been selected for the Website of the Year award. As Sitefinity as a platform continues to evolve, we are excited to continue our partnership with Progress and utilize new platform features for Kubota Tractor Corporation and all of our clients, in order to provide the best web experience possible to their customers.