---
schema_version: "1"
id: cd1f37b05a9c62016b53dd0fd15a1a430f6f63f2117af11df4398926db1ee9ca
title: "OM Plus: Corrupt Data"
collection: admin
version: current
locale: en-us
portal_url: https://docs.salesforce.com/admin/current/en-us/ind/264-0-0/comms_t_om_pluscorrupt_data_241756.md
canonical_url: https://help.salesforce.com/s/articleView?id=ind.comms_t_om_pluscorrupt_data_241756.htm&release=264.0.0&type=5
source_site: help.salesforce.com
content_type: documentation
content_hash: 23e48e7088190e8159e6cd46f2d8b61d8d286c9e3a156d9064da6b0dbabcbb2b
description: Corrupt data can often be restored. Before doing so, it's helpful have an understanding of the data stores in the system.
products:
  - Industry Solutions
  - Cross Cloud
release: "264"
---
# OM Plus: Corrupt Data

Corrupt data can often be restored. Before doing so, it's helpful have an understanding of the data stores in the system.

```
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PIT.html
```

Using PIT, you can restore your database to a state ranging from the last database snapshot to a few minutes before the current time.

For detailed steps about restoring corrupt data, see [Restore Corrupt Data](https://help.salesforce.com/s/articleView?id=ind.comms_t_restore_corrupt_data_241933.htm&release=264.0.0&type=5 "Using PIT, a \"point-in-time\" restore capability provided by AWS, you can restore your database to a state ranging from the last database snapshot to a few minutes before the current time.").

The diagram below provides an overview of all the data stores in the system:

**Vlocity Order Management Plus Data Stores**

![Order Management Plus Data Stores diagram](https://sf-zdocs-cdn-prod.zoominsoftware.com/tdta-ind-order_management-264-0-0-production-enus/c2040b01-aade-4ba7-8a7d-d7cd745d5c8c/order_management/images/om_data_stores.png)

Order Management Plus treats Salesforce, Kubernetes, all Apache Kafka queues and external systems as data stores.

<table class="slds-table slds-table_bordered slds-max-medium-table_stacked slds-m-bottom_small ">
      <colgroup>
        <col>
        <col>
        <col>
        <col>
      </colgroup>
      <thead class="slds-text-title_caps ">
        <tr class="">
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18972e53">
            <p style="margin-bottom:0;">Data Store</p>
          </th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18972e56">
            <p style="margin-bottom:0;">Contains</p>
          </th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18972e59">
            <p style="margin-bottom:0;">Data Characteristics</p>
          </th>
          <th scope="col" class="slds-cell-wrap" style="vertical-align:top;" id="d18972e62">
            <p style="margin-bottom:0;">Comments</p>
          </th>
        </tr>
      </thead>
      <tbody>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">PSQL</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p>Downstream Orders/Order Items</p>
            <p>Orch Plans/Orch Items</p>
            <p style="margin-bottom:0;">Inventory Items</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Source of truth</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">Ensure Inventory Items are linked to Assets. Inventory Items also store unique information about the service to recover manually if lost.</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Riak</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Session storage</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p style="margin-bottom:0;">Disposable</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">&nbsp;</td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Riak</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Grants cache</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p style="margin-bottom:0;">Disposable</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p>Grants cache is fetched from a persistent storage i.e. Postgres Database and automatically reconstructed from persistent storage if data is not found in cache (i.e. Riak).</p>
            <p style="margin-bottom:0;">You can trigger the cache reload operation manually to resync the grants cache data if persistent storage state is rolled back.</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Kubernetes</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Deployments for workers</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Derived</p>
            <p style="margin-bottom:0;">Updated extremely infrequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">Automatically reconstructed when worker-manager restarts</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">PSQL</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Catalog</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Derived from SFDC</p>
            <p style="margin-bottom:0;">Updated infrequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">&nbsp;</td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">PSQL</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p>Orders/Order Items</p>
            <p style="margin-bottom:0;">Assets</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Derived from SFDC</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">Some of the order information is derived from Order Management Plus&nbsp;data as a result of integration</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">S3</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Catalog</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Derived from SFDC data</p>
            <p style="margin-bottom:0;">Updated infrequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">Can re-sync with SFDC</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Completer queue (Kafka)</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Orch Items</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Derived from PSQL</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">After the rollback, these queues are in inconsistent state. Therefore, they are drained during restoration. Any items streamed for completion are marked as Fatally failed using product-supplied tooling.</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Kafka2SFDC queue (Kafka)</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Orders/Order Items</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Derived from PSQL</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">To check the impact of the data rollback on the assets, the retention time for the order_orderitems queue is 30 minutes. A REST service and a tool allows you to export asset changes from this queue</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Kafka2Schedule queue (Kafka)</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Orch Items</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Derived from PSQL</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">&nbsp;</td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Salesforce</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Catalog</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Critical</p>
            <p style="margin-bottom:0;">Updated infrequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">&nbsp;</td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Salesforce</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Orders (structure, state information)</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Critical</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">When the PSQL instance rolls back to a previous point in time, there are orders that were submitted between the point to which we restore the PSQL and the current clock time. The state of provisioning of these orders is unknown and requires an implementation-specific tool and manual activities for restoration. The Products team will provide tooling to identify those orders.</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Salesforce</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Assets</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Critical</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">As with orders, some assets can be created or updated during the lost data window. The Products team will provide tools to identify the changes made to the assets</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">External system</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">&nbsp;</td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p>Critical</p>
            <p style="margin-bottom:0;">Updated frequently</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">Restore strategy is on a case by case basis</p>
          </td>
        </tr>
        <tr class="">
          <td data-label="Data Store" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e53 ">
            <p style="margin-bottom:0;">Incoming queue (Kafka)</p>
          </td>
          <td data-label="Contains" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e56 ">
            <p style="margin-bottom:0;">Orders/Order Items</p>
          </td>
          <td data-label="Data Characteristics" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e59 ">
            <p style="margin-bottom:0;">Critical</p>
          </td>
          <td data-label="Comments" class="slds-cell-wrap" style="vertical-align:top;" headers="d18972e62 ">
            <p style="margin-bottom:0;">This queue should have retention configuration large enough to hold requests for 30 minutes.</p>
          </td>
        </tr>
      </tbody>
    </table>