Beta Version

BLOGS

Kapil Oliveti
3 Minute read

Understanding Sitecore Helix

Sitecore Helix comprises a set of architecture conventions and guidelines that describe the application of recommended technical design principles to a Sitecore project. Learn more about this in blog!

What is Sitecore Helix?

Sitecore Helix is nothing but a set of official guidelines and recommended practices for Sitecore development. The significance of Helix is to primarily to secure implementations in a way by structuring them as maintainable and extensible business-centric modules. That’s not all - it also comprises development process recommendations, which helps to build, test, extend and maintain Sitecore implementation.

What Helix essentially does is describe the overall architecture of your Sitecore solution and accordingly communicates guidelines that are durable and flexible to be applied to any Sitecore project. In fact, this pattern described by Helix is also referred to as Component-based Architecture or Modular Architecture.

What Modular architecture does is that it provides a framework which makes it simpler to optimize and increase productivity by describing how to isolate domain logic and this makes the implementation way more manageable. It is a way of making sure that the resulting solution is flexible enough even if there are changes.

ebook

Top 10 Sitecore 9 Form Features to Increase Lead Conversions

The layer concept in Helix

This concept supports the architecture by making the dependency flow completely clear everywhere in the solution - be it Sitecore, Visual Studio or even file system. In fact, the layers also provide a structure that is favourable for creating and maintaining solutions of any size and also helps both new and experienced developers to produce a clear code.

Even though layers are a conceptual construct, they are generally described through folders in the filesystem, Visual Studio and Sitecore along with namespaces in code. Layers also define in which direction modules can depend on other modules.

Layers also reply on the Stable Dependencies Principle, which is crucial in Modular Architecture. This speaks of how a module must depend on another module that is more stable than itself. The reason is primarily because if dependencies are not controlled, you can end up in an unstable code base and it will be difficult to maintain the solution over a long period.

There are three layers under Sitecore Architecture Conventions:

  • Project Layer
  • Feature Layer
  • Foundation Layer

Project Layer

This is the layer that provides the context of the solution - primarily the actual website or other outlets, including page types, layout and graphic design. It is this layer where all the features of a solution are built together and turned into a cohesive solution. This layer is small and contains only a few modules.

Feature Layer

This is the layer that contains concrete features of the solution, such as news, articles, promotions, website search etc. What is important to remember here is that features are expressed as seen in the business domain of the solution and not by technology. This means that the module’s responsibility and naming should not be governed by specific technologies but by a module’s business value.

Besides, this layer has to adhere to the Common Closure Principle, which means that changes in one feature do not cause changes anywhere else and that these can be added, modified and removed without impacting other features.

Foundation Layer

The lowest level in Helix is the foundation layer, which forms the foundation of your solution. When a change occurs in one of these modules, it can make an impact on other modules. This is why these modules need to be the most stable as mentioned in the Stable Dependencies Principle. In a nutshell, all kinds of frameworks and software can be termed foundational modules. These modules are either business-logic specific extensions on the technology frameworks or shared functionality between feature modules.

What are modules?

Modules in Helix are derived from components in Component-based Architecture.In Helix, modules are essentially business-centric, which means that they must be co-related to business objectives. The biggest challenge is the breakdown and naming of modules in Helix. Sometimes, developers get confused by the type-centric nature of development tools and pay less attention to the business of feature-centric nature of modular architecture. Do not fall in this trap!

Modules can be grouped together to improve maintainability, readability or even structure.

Benefits of Helix

Here’s a lowdown on the benefits of Helix:

  • Extensibility: Helix principles help in defining project boundaries and helps in establishing dependencies. You can easily extend one feature without impacting any other part or feature of the application. Let us take the example of Sitecore and the Indexing Foundation module. This allows content types from different Feature modules to be indexed by implementing the interface in Foundation module. This Foundation does not need to know about the new module in advance or depend on any of Feature module.
  • Reusability + Development Cost: As we have divided the features in the module and based on dependencies, they are more easily available for reusability (e.g. Sitecore.Foundation.Indexing Foundation module) and hence can reduce the cost.
  • Technical Debt - Project based on Helix principle also leads to less technical debt, since Helix allows modules to be independent and so can be updated/deleted over time without impacting other features.

At Altudo (formerly eDynamic), we help our clients deliver exceptional customer experiences through 1:1 personalization & enhanced engagement, to grow revenue streams.

As Sitecore Platinum implementation partners, our deep understanding of the Sitecore ecosystem goes beyond the basics of CMS, to unleash the true potential of a seamless, personalized website experiences & curating engagement analytics throughout the customer journey.

Kapil Oliveti Director Solution Architect


You might like these

Adding custom warnings in the Sitecore content editor window

Now that you have now implemented Sitecore as your CX & CMS platform & are looking to implement best practices in your deployment. In this blog, we will discuss how you can add custom warnings which help standardize your workflow across users. Read More...

Riding on Big Wins, Altudo becomes a Sitecore Platinum Implementation Partner

This announcement follows several recent big wins & successful projects that involved Altudo implementing Sitecore’s experience management platform, for top brands.

Read More...
Supercharge Digital Marketing ROI with Revenue Engine

Sitecore Website Deployment - Best Practices and Steps to Consider

Website deployment to production was a time-consuming, manual task in the past. In this blog, we will discuss a number of steps to implement a best practice strategy for Website Deployment on Sitecore.

Read More...
Altudo now a Sitecore Platinum Implementation Partner

Get in Touch