Building for Scale

This guide will help you understand the key concepts and architecture principles of building an analytics application for scale with Visier.

Before you get started, there are two important concepts to understand:

  • Tenant management hierarchy: Grants overarching ownership to one tenant for several analytic tenants.
  • Content hierarchy: Share the administrating tenant's blueprint with other tenants.

The two structures have differing uses and overlap throughout the onboarding process and tenant maintenance lifecycle.

Data standardization is also essential for unlocking the full potential of Visier's out-of-the-box content, enabling meaningful comparisons and benchmarks between clients, and ensuring maintainability as the number of clients increases.

Tenant and content hierarchy

What is it?

Your Visier instance operates within a parent-child relationship, with the administrating tenant acting as the parent and the analytic tenant as the child. The administrating tenant serves as the controller for your application, where implementation occurs and changes are managed. It is provisioned with the Visier Blueprint content and data model, which serves as the starting point for your application.

Your blueprint, which defines your application, is created and organized within the administrating tenant in modules. Each module represents a block of content (metrics, analyses, objects, etc.) that reflects your product packaging (products or tiers). Think of analytic tenants as your customers' instances of Visier. They inherit the Blueprint from the administrating tenant and are granted access only to the modules for which they are licensed. Avoid making changes in analytic tenants to maintain consistency across your solution. By working within the administrating tenant, you maintain one source of truth that all analytic tenants are based on.

For more information, see Tenant Hierarchy and Blueprint Inheritance.

Why is it important?

The tenant and content hierarchy allows you to build a one size fits all solution that is inherited by all of your analytic tenants. You can configure, customize, and extend the partner Blueprint to suit your unique requirements in your administrating tenant and have those changes cascade down to your analytic tenants when you're ready.

Standardization

What is it?

Data standardization is the process of transforming data into a common format to facilitate meaningful analysis and comparisons across different datasets. Standardization is recommended for Concepts and Dimensions in Visier.

For more information, see Data Standardization Best Practices.

Why is it important?

Data standardization in Visier is crucial for leveraging its out-of-the-box content, which relies on Concepts defined that require standardized data. Standardization also enables comparisons and benchmarks between customers, ensuring maintainability at scale by mapping data to a finite set of data categorizations.

For example, across all of your customers there may be a large number of exit reasons that should all be classified as resignation, such as:

Customer

Standardized Exit Reason

Customer Exit Reason

Customer A

Resignation

Quit without notice

Customer B

Resignation

Resignation

Customer A

Resignation

Resignation with notice

Customer C

Resignation

Resignation, voluntary

To capture all the resignations, we need to harmonize the data extracted from your customers to keep two levels of detail: the granular level that the customer provides and the generic value Visier requires that defines on a higher level the type of event or attribute. In order to analyze resignation rate across customers, it is critical to know which exit reasons should be considered as resignations. 

Transactional data

What is it?

Transactional data consists of individual records detailing specific people or business transactions, such as starts, exits, compensation changes, or changes to any other objects in your data. These entries include timestamps, identifiers for involved entities, and other attributes that describe the entity.

Snapshot data, on the other hand, provides a single point-in-time view of your data, capturing the state of your data at a specific moment. This data does not change unless explicitly updated, providing a static snapshot of your data at that particular time.

For more information, see Data Schema Best Practices.

Why is it important?

Transactional data is crucial for building a scalable application as it provides a detailed record of actions and changes within your data. It is efficient to process, requiring less data to be transferred day to day, as only the records that have changed since the last upload need to be loaded. This practice of only sending changed records is known as a delta load, and should be the default approach for sending data to Visier. This efficiency is key for maintaining a scalable and manageable analytics solution.

User and tenant management

What is it?

User and tenant management in Visier involves automating workflows using the platform's APIs. These APIs allow you to programmatically manage users and tenants at scale, streamlining administration processes.

Why is it important?

Automating user and tenant management workflows using Visier APIs is crucial for efficiently managing large-scale implementations. Implementing these APIs simplifies tasks such as user provisioning, access control, and tenant configuration, enhancing overall operational efficiency. 

For more information, see Visier APIs.

Best practices

  • Leverage tenant and content hierarchy for scalability: Build a standardized solution in your administrating tenant, treating it as the source of truth for your application. Customize and extend the Partner blueprint to suit your unique requirements, and let those changes cascade down to your analytic tenants. Avoid making changes at the analytic tenant blueprint level to maintain consistency and manageability.
  • Implement data standardization for meaningful analysis: Standardize your data to unlock the full potential of Visier’s out-of-the-box content. Ensure that data is transformed into a common format, enabling comparisons and benchmarks across different datasets. This standardization is crucial for accurate analysis and maintainability as the number of clients increases.
  • Utilize transactional data for efficient data loading: Transactional data consists of individual records detailing specific people or business transactions. It is efficient to process since only changed records need to be loaded, rather than sending a full history on every upload. Understanding transactional data is crucial for optimizing data processing and ensuring accurate analytics.
  • Implement user and tenant management automation: Automating user and tenant management workflows using Visier APIs is crucial for efficiently managing large-scale implementations. Implementing these APIs simplifies tasks such as user provisioning, access control, and tenant configuration, enhancing overall operational efficiency. 

These best practices will help you build a scalable analytics solution with Visier, ensuring consistency, efficiency, and meaningful insights across your customer base.