The Sitecore Experience Database (xDB) collects all your customer interactions from all channel sources in a real-time, big data repository. It connects interaction data to create a comprehensive, unified view of each individual customer, and makes the data available to marketers to manage the customer experience in real time.
The xDB architecture is flexible allowing you to deploy single-server, low-traffic solutions as well as highly scalable, high-traffic, multi-server, solutions.
The key architecture components in the xDB are:
- Content delivery server
- Content management server
- Content databases (SQL Server)
- Session state server
- Collection database (MongoDB)
- Processing server
- Reporting database
- Reporting service
xDB Data Flow
When a contact interacts with your website, the xDB collects all contact and the interaction data. This data flows through the xDB in the following sequence:
- A contact decides to interact with a website.
- Depending on the geographic location of the contact, the xDB redirects their visit to the closest cluster (data center) through DNS configuration.
- Load-balancing software directs the contact to an appropriate Sitecore content delivery server. Contacts stay connected to the same cluster even if they switch devices or use another browser. Contacts can only move to another cluster if all their active sessions expire and all their information is then saved to the collection database.
- During the session, details of the contact, the interaction, and the device are stored in either a private or shared session state. On session end, Sitecore flushes this data to the collection database and schedules it for processing.
- The processing layer reduces and groups interaction (online visit) data and stores it in the reporting database for use by the reporting layer. This is known as aggregation. Data is also aggregated by the processing layer for use by the segmentation index.
- The Reporting Service queries the reporting database to fetch reporting data for use in applications such as Experience Analytics (xAnalytics).