Oracle Retail22 min readBy Priyanshu Pandey

RIB Architecture: The Retail Integration Bus That Connects Every Oracle Retail Module

A comprehensive guide to the Oracle Retail Integration Bus (RIB). Learn how JMS-based pub/sub messaging connects RMS to Xstore, RPCS, ReIM, and SIOCS, the RIB adapter architecture, message families, error hospital, RIHA monitoring, and real-time vs batch integration patterns.

Phase 8 · Integration & Batches

The nervous system of Oracle Retail — every time an item is created, a PO is approved, or a price changes, a RIB message carries that event to every system that needs to know.

22 min read📅May 29, 2026✍️Priyanshu Pandey📚Oracle RMS Series
THE NERVOUS SYSTEM

What is the RIB?

The Retail Integration Bus (RIB) is Oracle's real-time messaging infrastructure that connects all Oracle Retail applications. When something changes in one system, the RIB ensures every other system that cares about that change receives a notification.

Without the RIB, each Oracle Retail module (RMS, Xstore, RPCS, ReIM, SIOCS) would need point-to-point integrations with every other module — an N×N integration nightmare. The RIB provides a centralized hub:

ARCHITECTURE

RIB Architecture & Components

┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐   ┌──────────┐
│   RMS    │   │  RPCS    │   │  Xstore  │   │  SIOCS   │   │  ReIM    │
│          │   │          │   │          │   │          │   │          │
│ Publisher│   │ Publisher │   │ Publisher│   │ Publisher│   │ Publisher│
│ +        │   │ +        │   │ +        │   │ +        │   │ +        │
│ Subscriber│  │ Subscriber│  │ Subscriber│  │ Subscriber│  │ Subscriber│
└────┬─────┘   └────┬─────┘   └────┬─────┘   └────┬─────┘   └────┬─────┘
     │              │              │              │              │
     └──────────────┼──────────────┼──────────────┼──────────────┘
                    │              │              │
              ┌─────▼──────────────▼──────────────▼─────┐
              │                                          │
              │        WEBLOGIC JMS SERVER               │
              │                                          │
              │   ┌────────────┐  ┌────────────┐        │
              │   │ Topic:     │  │ Topic:     │  ...   │
              │   │ ItemDesc   │  │ PrcChgDesc │        │
              │   └────────────┘  └────────────┘        │
              │                                          │
              │   ┌────────────┐  ┌────────────┐        │
              │   │ Topic:     │  │ Topic:     │        │
              │   │ ASNDesc    │  │ InvAdjDesc │        │
              │   └────────────┘  └────────────┘        │
              │                                          │
              └──────────────────────────────────────────┘

Key Components

  • WebLogic JMS Server: The message broker that hosts JMS topics and manages message delivery
  • JMS Topics: Named message channels. Each topic carries a specific type of business event (ItemDesc, PrcChgDesc, etc.)
  • RIB Adapters: Application-specific connectors that publish messages to and subscribe to messages from JMS topics
  • Message Payloads: XML documents conforming to the Oracle Retail Integration XML schema (RIB XML)
PUB/SUB

The Pub/Sub Messaging Model

RIB uses the Publish/Subscribe (Pub/Sub) pattern:

  • Publisher: The system that generates the event. When RMS creates an item, the RMS RIB adapter publishes an ItemDesc message.
  • Topic: The logical channel. The ItemDesc topic carries all item-related events.
  • Subscriber: Systems that need the event. Xstore subscribes to ItemDesc to update its local item database. RPCS subscribes to ItemDesc to set up pricing for new items.

Key Advantages

  1. Loose Coupling: RMS doesn't know (or care) how many systems subscribe to its messages. It just publishes to the topic.
  2. Guaranteed Delivery: JMS persists messages to disk. If Xstore is temporarily offline, messages queue up and are delivered when it reconnects.
  3. Independent Processing: Each subscriber processes messages at its own pace. A slow subscriber doesn't block other subscribers.
  4. Event Replay: Messages can be replayed from the JMS store if a subscriber needs to reprocess historical events.
MESSAGE FAMILIES

Message Families & Types

RIB organizes messages into families based on business domain:

FamilyTopic NamePublisherSubscribersEvent
ItemItemDescRMSRPCS, Xstore, SIOCS, RIItem created/modified
Item-LocationItemLocDescRMSXstore, SIOCSItem ranged/de-ranged
Price ChangePrcChgDescRPCSXstorePrice change executed
PromotionPrcChgDescRPCSXstorePromotion activated
POPODescRMSReIM, RTMPO created/modified
ASNASNDescRMS, WMSSIOCS, RMSShipment dispatched/received
Inventory AdjustInvAdjDescSIOCSRMSStock count adjustment
SupplierSupDescRMSRPCS, ReIMSupplier created/modified
LocationOrgHierDescRMSAllStore/warehouse created

Message Types Within a Family

Each message family supports multiple operation types:

  • Create: A new entity was created (new item, new PO)
  • Modify: An existing entity was changed (item description updated, PO quantity changed)
  • Delete: An entity was removed or inactivated
  • Detail Create/Modify: Child records were added (PO line items, item-location records)
ADAPTERS

RIB Adapters

Each Oracle Retail application has a dedicated RIB adapter — a Java application deployed on WebLogic that handles message publishing and subscribing:

AdapterApplicationDirection
rib-rmsRMSPublishes item, PO, supplier, location events; subscribes to sales, receipts
rib-rpcsRPCSSubscribes to items; publishes price changes
rib-simSIOCSSubscribes to items, ASNs; publishes adjustments, receipts
rib-rxmXstore/XcenterSubscribes to items, prices, promotions
rib-reimReIMSubscribes to POs, receipts; publishes invoice matches
rib-tafrThird-party adaptersCustom adapter for non-Oracle systems
REAL EXAMPLE

Message Flow: Item Creation Example

When a buyer creates a new item in RMS, here's the complete RIB message flow:

1. Buyer creates item 100400012345 in RMS
   └── RMS commits to ITEM_MASTER
   
2. RMS triggers publish to RIB
   └── rib-rms publishes ItemDesc(CREATE) to ItemDesc topic
   
3. JMS persists the message and delivers to all subscribers:
   
   ├── rib-rpcs receives ItemDesc(CREATE)
   │   └── RPCS creates pricing placeholder for new item
   │
   ├── rib-rxm receives ItemDesc(CREATE)  
   │   └── Xcenter routes to relevant stores
   │       └── Xstore updates local Derby DB with new item
   │
   ├── rib-sim receives ItemDesc(CREATE)
   │   └── SIOCS updates local item master for inventory ops
   │
   └── rib-reim receives ItemDesc(CREATE)
       └── ReIM creates item reference for invoice matching

All of this happens within seconds of the buyer clicking "Save" in RMS.

ERROR HOSPITAL

The Error Hospital

When a subscriber cannot process a message (e.g., RPCS can't create pricing because the item's department doesn't exist in RPCS), the message enters the Error Hospital — a holding area for failed messages.

Error Hospital Workflow

  1. Message fails processing — the subscriber's adapter logs the error
  2. Message moves to error queue — it's removed from the main processing queue to prevent blocking subsequent messages
  3. Operations investigates — reviews the error message and root cause
  4. Fix the data issue — correct the underlying data problem (e.g., create the missing department in RPCS)
  5. Retry the message — the operator marks the errored message for reprocessing
  6. Message processes successfully — removed from the error hospital

Common Error Hospital Scenarios

ErrorCauseFix
Item department not foundDepartment hierarchy not synced to subscriberCreate the department in the subscriber system, retry
Supplier not foundSupplier message processed out of orderWait for supplier message, then retry item message
Duplicate keyMessage replayed after successful processingPurge the duplicate from error hospital
Schema validation failureMessage format doesn't match expected XML schemaFix the publisher's message generation logic
MONITORING

RIHA Monitoring Console

RIHA (Retail Integration Hub Application) is the web-based monitoring console for the RIB:

  • Dashboard: Real-time view of message throughput, error counts, and adapter status across all topics
  • Error Hospital Manager: Browse, search, and retry errored messages
  • Adapter Control: Start, stop, and restart individual RIB adapters
  • Message Tracking: Trace a specific message's journey from publisher through topic to all subscribers
  • Performance Metrics: Message processing rates, queue depths, and latency measurements
BEST PRACTICES

Integration Best Practices

Important Gotchas

  • !
    Monitor error hospital queue depth daily. A growing error hospital means messages are piling up unprocessed — downstream systems are increasingly out of sync with RMS.
  • !
    RIB messages have implicit ordering dependencies. An ItemLocDesc message for item X at store 100 requires that the ItemDesc message for item X was already processed. Out-of-order processing causes "entity not found" errors in the subscriber.
  • !
    Never restart a RIB adapter without first checking the error hospital. Restarting an adapter that has a schema mismatch will cause the same error for every subsequent message, flooding the error hospital.
  • !
    Size JMS storage appropriately. If a subscriber goes offline for 24 hours, the JMS store must hold all messages published during that period. For high-volume topics (ItemDesc, PrcChgDesc), this can be gigabytes of data.
  • !
    In cloud deployments, Oracle manages the RIB infrastructure. You interact with RIB through RIHA monitoring only — you cannot restart adapters or modify JMS configurations directly.

Key Takeaways

  • The RIB is a JMS-based pub/sub messaging system that connects all Oracle Retail applications in near real-time.
  • Messages are organized into families (ItemDesc, PrcChgDesc, ASNDesc) and published to JMS topics hosted on WebLogic.
  • Each application has a dedicated RIB adapter (rib-rms, rib-rpcs, rib-rxm) that publishes and subscribes to relevant topics.
  • The Error Hospital holds failed messages for investigation and retry — preventing bad messages from blocking the entire queue.
  • RIHA provides web-based monitoring of message throughput, error hospital status, and adapter health.
  • Message ordering is critical — item messages must be processed before item-location messages to avoid "entity not found" errors.
RetailCoder
All systems operational
v1.0 Live

RC:OMS

Multi-channel order management with double-entry inventory ledger. Amazon, Flipkart, Shopify, WooCommerce — one source of truth.

Launch demo →
v1.0 Live

RC:Storefront

Self-hosted headless e-commerce. Your server, your data, zero transaction fees. Native RC:OMS inventory sync.

Visit Storefront →
Pipeline

RC:Pulse

AI-powered retail analytics and demand forecasting — built natively on top of your RC:OMS and Storefront data.

Request early access →
Built in India 🇮🇳  ·  Architected by Priyanshu PandeyTalk to an engineer →