All user data captured or calculated by the mediarithmics platform ends in a special database named datamart. ‌
A mediarithmics datamart is more than a traditional database. This new generation database leverages a database engine specially designed to outperform in the domain of data-driven marketing applications. This database engine is the outcome of more than seven years of R&D from mediarithmics engineering teams. Datamart is the first database engine to provide both real-time query processing and scalability on large data volumes.
A datamart is a multi-model database. Datamart displays information it manages in an object graph, where nodes can either be persisted objects or objects computed on the fly. Datamart then generates column-oriented tables specialized for analytics scenarios.

Automatic identity resolution

The object graph nature of a datamart is particularly adapted to capture the 'user graph' where each piece of information associated to a user is connected with the others in a local graph structure.
The mediarithmics graph structure organizes a user as a node, called a user point. The user can be identified or anonymous. Think of the user point as a pin-point that a detective would use to connect various pieces of information on the board, as shown in the following diagram.
Automatic identity resolution is where the software "detective" merges two user points representing the same person. All content and identifiers are regrouped under the older user point. The newer user point is then archived.

Schema based

The structure of a datamart is defined by a customizable schema, defined in a text file and based on the GraphQL Schema Definition Language (SDL). The GraphQL schema defines what types of data are stored in your data graph. Schemas are strongly typed, which unlocks powerful developer tooling.
SDL is simple and intuitive to use, while being extremely powerful and expressive. The specification of this standard is available here:
A tutorial explaining the syntax of the type system is available here:

Computed objects

User data alone is not sufficient to implement powerful personalized marketing. As in interpersonal communication, experience can help us make educated guesses. Datamart supports homogeneous management collected and automatically computed data to get the necessary insight on each user. Both types of data are declared in the same GraphQL schema.
The mediarithmics datamart allows the homogeneous management of the collected data and the computed data. They are both declared in the same GraphQL schema and from the outside nothing distinguishes them.
From the inside, the computed data is associated with algorithms that are loaded into the platform in the form of plugins. These algorithms can have different roles:
  • Machine Learning Function to calculate predictive data
  • User Trait Function to calculate aggregates on user data
Like all the other plugins, they are freely modifiable and customizable.

Query languages