Category Archives: Architecture

Sitecore 9 xDB Sharding

Have you ever wondered what is going on with those new Shard databases in Sitecore 9? This is the new xDB! The new Shard Manager stores data based on the contact ID. A contact ID is a GUID identifier that is unique for each contact. It looks something like this:


The xDB scales out by splitting these contacts across the various shards based on their contact identifier. A 16-byte hash of the GUID is used and assigned to each shard to ensure distribution.

Continue reading Sitecore 9 xDB Sharding


Scaling Sitecore 9.0 XP Services

The blog here has been a little quiet lately as I have started moving to creating content on the corporate site. I wanted to share something I worked on and has been posted on the Community blogs.

Here you go: Scaling Sitecore xConnect and XP Services architecture

In the linked blog you’ll get a brief overview but primarily you’ll get access to the video content I’ve created to help you understand the new Sitecore 9.0 services and how to scale them!

SSL for multi-tenant Sitecore installations

From the dawn of HTTPS-time, admins have struggled with setting up multiple SSL certificates on a single server.  At the same time, we have Sitecore’s licensing model which really drives the business to get the most value out of fewer Sitecore instances. This leads teams to encounter multi-tenant installations that also require SSL protection, which in turn leads to me receiving questions like the following from clients:

“How do we get Sitecore to have multiple HTTPS websites on a single instance?”

The multiple SSL certificates problem is not because of a limitation on the Sitecore side, but rather a limitation in Internet Information Services (IIS).  No amount of configuring Sitecore site definitions will help you solve this problem. So how do we solve this issue?

Continue reading SSL for multi-tenant Sitecore installations

Tenth day of Christmas… Ten WTFs!

On the tenth day of Christmas, my true blog gave to me:

Ten WTFs,
Nine giphy’s dancing,
Eight Scrums a-scaling
Seven most-heard retrospective comments,
Six Keystone config tips
Five Golden Rules!
Four CI tools
Three powershell scripts,
Two Keystone merge tips,
…and a placeholder rule in the content tree.

For years, I’ve read The Daily WTF for humourous stories from the field. As a gift to you, here are 10 of the ones from over the years that I personally enjoyed!
Continue reading Tenth day of Christmas… Ten WTFs!

Sitecore xDB infrastructure planning

Sitecore 122Over the last while my colleague Amanda and I have been collecting information to guide people through the upgrade to Sitecore 8 and plan for the new xDB. There are a lot of scenarios to consider and new scaling options available to you. Provided below are the collection of resources we’ve been able to put together so far.

Continue reading Sitecore xDB infrastructure planning

WCF and CORS: “No ‘Access-Control-Allow-Origin’ header is present on the requested resource”

Service-oriented ArchitectureIf you are building an Angular app (or other form of HTML5 web application) you are probably running controllers on JSON data to bind to repeaters and present to your users. In many examples, this is usually set up with static data, or a local file, but inevitably you will want to architect something a bit more scalable. One way is to introduce a WCF service to act as your gateway to a data store, but if you are running this service outside of the domain of your web application, you will see the following error in your Javascript console:

No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘’ is therefore not allowed access.

Continue reading WCF and CORS: “No ‘Access-Control-Allow-Origin’ header is present on the requested resource”

Baby Steps to SOA: A retrospective on the blog series

Service-oriented ArchitectureOne of the key needs in lean, scrum, and other agile processes is for continuous improvement.  We constantly review how we do things to do them better.  The most common method of doing this is the retrospective.  After 5 months of writing the Baby Steps to SOA series, I decided that I wanted to review what I had done and figure out how to do it better.  Of course, since this is an agile-related blog, I wanted to share this experience with those of you out there so you can learn about how a retrospective works, and how you can apply it to any work you are doing.

Continue reading Baby Steps to SOA: A retrospective on the blog series