I'm using Sitecore 8.2 Update 4, and am looking at migrating a traditional MVC monolithic Sitecore project to the Helix architecture as I'm enhancing the existing website. I'm trying to wrap my mind around how to architect my .NET projects in a way that is consistent with Helix principles. Here's an example of something that I'm trying to do:

We have a Sitecore agent whose purpose is to read data from our CRM and then populate some of that data into contact cards. Here's a picture of what my proposed architecture looks like:

Proposed Architecture Diagram

The problem is that I have 1 feature (Agents) that depends on other features (Connectors, Custom Facets). I know that Helix gives us the freedom to do groups, however, it doesn't specify what that looks like in a practical situation. This also seems to violate the Stable Dependency Principle.

I'm looking at changing my architecture to be more like this:

Better Architecture?

Here are my questions:

  1. Is this the right direction to go in order to get my dependencies to follow the correct flow?
  2. Other than the Helix site, are there any other good resources to help me process things like this?
  • Connectors should be under Foundation. Question is whether Campaigns and Agents should be one module instead with better "business" name. Based on Helix you should have modules created based on business requirements -> helix.sitecore.net/principles/architecture-principles/… – Peter Procházka Jun 6 '18 at 19:22
  • The same thing is also valid for CustomFacets module. It should be probably part of Feature module based on your description. This is more suitable question for Sitecore Slack channel or Sitecore community forum IMHO – Peter Procházka Jun 6 '18 at 19:26
  • I would also recommend to do these changes step by step. Each sprint, iteration refactor certain number of modules not to do Big Bang at the end :) – Peter Procházka Jun 6 '18 at 19:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.