In the xDB world (ie in 7.5/8) we created a typical MVC controller & view to allow us to get information to the browser via a json feed. Example data would be custom facets we could import from other external systems into xDB, exposed to the browser via querying the xDB api with an identifier and then retrieving the facet data. Finally we'd render for the browser via a WebApi endpoint/MVC view.

In the xConnect world, is the best way to get this data via the xConnect client directly, or to expose the data as we did before through controllers and views exposed from the Sitecore application (and hence xConnect).

Is there any significant performance difference between the 2 approaches?

  • To clarify 'accessing the xConnect client directly' - there are obviously security considerations around how you let people access data in your system. Assume there is a pass-through API sat in front of it that only allows through the data you want to expose based on known input identifiers.
    – boro2g
    Nov 14, 2017 at 16:49

1 Answer 1


The purpose of the xConnect services layer is specifically for you to be able to accomplish this type of querying directly, without any need to involve your content delivery instances. xDB is still there, we still live in the xDB world, xConnect is an API layer for speaking with data in xDB.

This is one of the reasons that our secure-by-default installation runs xConnect services on SSL and uses certificate authentication so that you can be sure that only authorized connections are made to this layer.

If you need data from xDB, you should be sending it through, and retrieving it from, the xConnect services (Collection and Search respectively)

Developer documentation for using the Search service is available here: https://doc.sitecore.net/developers/xp/xconnect/xconnect-client-api/search/index.html

Note that from that documentation, specific to your custom facet example:

It is not possible to query events and facets directly - you must structure your query around contacts or interactions

  • Is there any guidance about how best to scale up this setup for high levels of concurrent users? Would you need: more xConnect service nodes vs bigger xConnect service nodes vs more powerful Sql instances vs ??? ?
    – boro2g
    Nov 14, 2017 at 17:02
  • Or a combination of all of the above? :)
    – boro2g
    Nov 14, 2017 at 17:03
  • @boro2g: Scaling is definitely a great question, and I would encourage you should ask that as a separate question! We have documentation around how to scale, but there are so many factors that 'when' to scale is very much a case-by-case basis. Some folks have a lot of collection, others are searching a lot, others need to do lots of marketing automation calls... Very situational, but the new architecture supports a lot of scaling options. Nov 14, 2017 at 18:46
  • Good shout - I've created sitecore.stackexchange.com/questions/8513/…
    – boro2g
    Nov 16, 2017 at 10:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.