Skip to content

Production-Grade Use Cases

PyRulesEngine is built to govern complex validation pipelines across diverse business domains. Below are comprehensive examples highlighting production-grade schemas utilizing the Pythonic JDM definitions for multiple industries.


1. E-Commerce (Dynamic Discount Pipeline)

Scenario: Calculate a dynamic discount based on user region, loyalty score, purchase history, and real-time telemetry.

JDM Configuration (YAML):

- WorkflowName: "DiscountWorkFlow"
  Version: "1.0.0"
  Rules:
    - RuleName: "Tier1DiscountCheck"
      Operator: "AndAlso"
      SuccessEvent: "Give15Percent"
      Rules:
        - RuleName: "IsEligibleRegion"
          Expression: "basicInfo['country'] in ['US', 'UK', 'CA']"
        - RuleName: "HasHighLoyalty"
          Expression: "basicInfo['loyaltyFactor'] >= 4"
        - RuleName: "SignificantHistory"
          Expression: "basicInfo['totalPurchasesToDate'] >= 10000"
        - RuleName: "ActiveShopper"
          Expression: "telemetryInfo['noOfVisitsPerMonth'] >= 5"

    - RuleName: "TierFailureFallback"
      RuleExpressionType: "LambdaExpression"
      Expression: "basicInfo['country'] == 'Unknown'"
      ErrorMessage: "User origin unverifiable; apply 0% discount."

Execution Context (Input Payload):

inputs = {
    "basicInfo": {
        "country": "US",
        "loyaltyFactor": 5,
        "totalPurchasesToDate": 12000
    },
    "telemetryInfo": {
        "noOfVisitsPerMonth": 10
    }
}
# Output: `Give15Percent` Success Event


2. FinTech (Fraud Detection & Risk Management)

Scenario: When a user initiates a peer-to-peer funds transfer, validate if the transaction exhibits fraudulent traits, triggering a risk-block mechanism.

JDM Configuration (YAML):

- WorkflowName: "FraudDetectionPipeline"
  Version: "1.0.0"
  Rules:
    - RuleName: "HighRiskTransfer"
      Operator: "OrElse"
      SuccessEvent: "FraudDetected_BlockTransfer"
      Rules:
        - RuleName: "AmountExceedsSafetyNet"
          Expression: "transaction['amount'] > 50000"
        - RuleName: "SuspiciousDeviceOrVelocity"
          Operator: "AndAlso"
          Rules:
            - RuleName: "NewDevice"
              Expression: "security['is_recognized_device'] == False"
            - RuleName: "HighVelocity"
              Expression: "security['transfers_last_hour'] > 5"
        - RuleName: "SanctionedCountry"
          Expression: "transaction['dest_country'] in ['North Korea', 'Iran', 'Syria']"
      Actions:
        OnSuccess:
          Name: "ExecuteWorkflow"
          Context:
            WorkflowName: "AccountLockdownOperations"

Execution Context (Input Payload):

inputs = {
    "transaction": {
        "amount": 2000, 
        "dest_country": "UK"
    },
    "security": {
        "is_recognized_device": False,
        "transfers_last_hour": 7
    }
}
# Output: `FraudDetected_BlockTransfer` (Triggers AccountLockdownOperations because of new device + high velocity)


3. Healthcare (Insurance Claim Validation)

Scenario: Scrutinize medical claims. Ensure the patient is active, the ICD-10 code aligns with covered policies, and the billing amount does not exceed the annual max coverage limits.

JDM Configuration (JSON):

[
  {
    "WorkflowName": "AutoAdjudicateClaim",
    "Version": "1.0.0",
    "Rules": [
      {
        "RuleName": "ClaimApprovalGate",
        "Operator": "AndAlso",
        "SuccessEvent": "ClaimApproved",
        "ErrorMessage": "Claim denied due to policy violations.",
        "Rules": [
          {
            "RuleName": "PolicyIsActive",
            "Expression": "patient['policy_status'] == 'Active'"
          },
          {
            "RuleName": "CoveredProcedure",
            "Expression": "claim['icd_10_code'] in ['J01.90', 'E11.9', 'I10']"
          },
          {
            "RuleName": "SufficientRemainingLimit",
            "Expression": "(policy['annual_limit'] - policy['used_limit']) >= claim['billing_amount']"
          }
        ]
      }
    ]
  }
]

Execution Context (Input Payload):

inputs = {
    "patient": { "policy_status": "Active" },
    "claim":   { "icd_10_code": "E11.9", "billing_amount": 1500 },
    "policy":  { "annual_limit": 50000, "used_limit": 49000 }
}
# Output: False (ExceptionMessage: Claim denied due to policy violations. limit remaining is 1000, claim is 1500).


4. Cybersecurity (IAM Access Control policies)

Scenario: A robust Zero-Trust model evaluating if an employee can mount an S3 production bucket.

JDM Configuration (JSON):

[
  {
    "WorkflowName": "S3ProductionMountAcl",
    "Version": "1.0.0",
    "Rules": [
      {
        "RuleName": "DenyUnmanagedDevices",
        "RuleExpressionType": "LambdaExpression",
        "ErrorType": "Error",
        "Expression": "device['is_mdm_enrolled'] == False",
        "ErrorMessage": "Access Denied: Device not managed by IT."
      },
      {
        "RuleName": "RequireEngineeringOrDevOps",
        "RuleExpressionType": "LambdaExpression",
        "Expression": "Linq.any(user['groups'], \"g => g in ['devops_prod', 'senior_eng']\")",
        "SuccessEvent": "Authorized",
        "ErrorMessage": "Access Denied: Missing mandated IAM groups."
      }
    ]
  }
]

Execution Context (Input Payload):

inputs = {
    "device": { "is_mdm_enrolled": True },
    "user": { "groups": ["frontend_dev", "senior_eng"] }
}
# Output: First rule evaluation fails (which is good, because it's an Error type). Second rule passes since user is in `senior_eng`.