Multi-tenant Rules Engine with Tenant-Specific Extensions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing multi-tenant database systems struggle to efficiently manage and execute rules-based logic across multiple tenants while maintaining data privacy and flexibility in business processes.

Innovation Solution

The implementation of a rules engine (RE) within a multi-tenant database environment that utilizes an industry-standard rule structure and syntax, allowing for tenant-specific rule extensions and metadata-aware business logic execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a rules engine is implemented in a multi-tenant database environment with tenant-specific rule extensions, then adaptability and flexibility of business logic are improved, but system complexity and difficulty of managing rules across multiple tenants increase

Engineering Contradiction:
Improvebusiness logic flexibilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the rules engine into shared core functionality and tenant-specific extensions. The shared rules engine provides common business logic execution capabilities, while each tenant can define their own extension rules that build upon or modify the shared rules. This segmentation allows independent development and management of tenant-specific logic without affecting other tenants, resolving the contradiction between adaptability and system complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a universal rules engine framework that serves multiple tenants with different business requirements. The shared rules engine provides common functionality for all tenants, while the extension mechanism allows each tenant to customize the behavior. This multi-functional design enables a single system to handle diverse business logic needs without requiring separate systems for each tenant, thus improving adaptability while managing complexity through standardization.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Ease of operation

If tenant-specific extension rules are allowed to modify shared rules, then ease of operation and customization are improved, but data privacy and security between tenants may be compromised

Engineering Contradiction:
Improvecustomization easeVSAvoiddata privacy
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The patent applies local quality by allowing each tenant to have their own extension rules that modify or extend shared rules in a tenant-specific manner. The system evaluates rules with awareness of the tenant context, ensuring that each tenant's extensions only affect their own data and operations. This contextual isolation maintains data privacy while enabling easy customization, as each tenant's modifications are locally applied without exposing other tenants' data.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent introduces a context-aware rule evaluation mechanism that acts as an intermediary between the shared rules engine and tenant-specific extensions. This intermediary layer manages the interaction by injecting tenant context into the rule evaluation process, ensuring that extension rules operate within appropriate security boundaries. The mediator ensures that while tenants can easily customize their business logic, the underlying data privacy and security constraints are maintained through controlled access and contextual awareness.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If a shared rules engine is used across multiple tenants, then productivity and resource efficiency are improved, but the ability to handle tenant-specific business logic variations decreases

Engineering Contradiction:
Improveresource efficiencyVSAvoidtenant-specific logic handling
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic rule evaluation that adapts to each tenant's specific context. The shared rules engine dynamically loads and applies tenant-specific extension rules based on the executing tenant's identity and requirements. This dynamic behavior allows the system to maintain the efficiency of a shared engine while adapting to diverse tenant-specific business logic, as the rule set is flexibly configured at runtime rather than being static.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent employs a nested structure where tenant-specific extension rules are embedded within the shared rules engine framework. The extension rules are nested as layers on top of the shared rules, allowing the system to execute a combination of common and customized logic in a unified manner. This nesting enables the shared engine to provide baseline productivity and resource efficiency, while the nested extension layers add tenant-specific adaptability without requiring separate execution environments.

Inventive Principle:
Principle #7Nested doll (Nesting)

Data Source

PatentUS12235849B2Multi-context stateful rule execution
Publication Date: 2025.02.25 SALESFORCE INC
  • US12235849B2 patent drawing
  • US12235849B2 patent drawing
  • US12235849B2 patent drawing

AI summary

A rules engine (RE) may operate in conjunction with a database providing functionality, such as transactional support in data access environments on behalf of tenants. The database may have a data repository accessible by multiple tenants, and tenants may have a private context. RE rules may be defined in the data repository having an extension point corresponding to an extension defined in the private context. Execution of database functionality may affect data defined in the database. Execution of RE rules corresponding to database functionality affects corresponding data associated with the RE. Various techniques, e.g., fact handles, event listeners, etc. may be used to coordinate tracking and synchronizing changes between RE data and/or the database. A flag or other indicator may signify state preservation between multiple calls to the database and/or the RE, e.g., to support analysis involving transactions having overlapping intermediary results such as results from performing data lookups.