Contributing SDI to Apache Sling

24 March 2016
Przemyslaw Pakulski
Frink_Cognifide_2016_HeaderImages_0117

Contributing Sling Dynamic Include to Apache Sling

At Cognifide, we make it our mission to be proactive in open source development. So we're thrilled this week to let you know that we are making a significant contribution to the Apache Sling project by donating the Sling Dynamic Include (SDI) library. The donation proposal, which was raised on the Sling mailing list,  was well received by the community and is now set to become part of the Sling code base as a project extension.

apache sling

“My team is very much involved in Apache Sling development – both as a Sling user and also in contributing code to the project. So, I was very happy and excited to learn that Cognifide has made the decision to move ’Sling Dynamic Include’ under the umbrella of the Apache Software Foundation. I am convinced that SDI will be a super valuable component for creating even more scalable web sites based on Sling. I strongly believe in truly collaborative development of infrastructure software. So, it is awesome to see Cognifide's continued contributions to open software development within the Apache Software Foundation.”

Dr. Michael Marth, Director of Engineering at Adobe

Overview

Sling Dynamic Include is a fairly simple but very useful library that allows you to include dynamic page fragments using server-side tags (ESI, SSI) or through client-side AJAX calls.

Dynamic page fragments are served separately from the static part, which makes the partially dynamic pages cacheable, depending on your needs, using AEM Dispatcher, CDN or other caching tool e.g. Varnish. Additionally,  all of this can be achieved in a declarative way without extra development effort, simply by applying the proper configuration.

Benefits

Combining all of this means that using SDI is an easy and efficient way of improving the performance of dynamically generated websites based in Adobe Experience Manager:
  • It integrates easily and seamlessly
  • It works out-of-the-box with AEM components
  • It's configurable at runtime with no development effort
  • It will improve the scalability of AEM based sites

Resources

To find out more about how SDI works and how to set it up, I would recommend looking at the following resources:
  • The Sling Dynamic Include blog-post on our website
  • SDI code and documentation on GitHub
  • Presentation slides from adapTo() conference

Sharing success

Over the past few years, Cognifide has successfully used this library in several AEM based projects and contributed to many other AEM implementations using SDI, where we have provided maintenance and support.

By adding Sling Dynamic Include to the Apache Sling project we believe that it will become even more popular and accessible to a wider group of AEM techies. Enjoy!