Skip to content

Add Solance event integration use case documentation#246

Open
Sachindu-Nethmin wants to merge 10 commits intowso2:mainfrom
Sachindu-Nethmin:solance-event-integration
Open

Add Solance event integration use case documentation#246
Sachindu-Nethmin wants to merge 10 commits intowso2:mainfrom
Sachindu-Nethmin:solance-event-integration

Conversation

@Sachindu-Nethmin
Copy link
Copy Markdown
Contributor

@Sachindu-Nethmin Sachindu-Nethmin commented Feb 16, 2026

Purpose

This PR introduces a new end-to-end integration use case for Solace Event Integration. It provides developers with a step-by-step tutorial on building event-driven notification services using Solace brokers and WSO2 Integrator:BI.

Goals

  • Demonstrate configuration of Solace Message VPNs, Queues, and Topic Subscriptions.
  • Showcase the implementation of the Solace Event Integration (Listener) and Solace MessageProducer.
  • Provide best practices for JSON payload databinding and conditional routing logic.

Approach

The implementation is structured into three logical phases:

  1. Broker Setup: Infrastructure provisioning via Solace PubSub+ (Docker).
  2. Event Consumption: Implementing a listener to ingest order status events.
  3. Business Logic: Routing filtered events to a notification queue using a message producer.

Release note

Added a new integration guide: "Building an E-commerce Order Notification Service with Solace Event Integration," covering listener configuration and conditional message production.

Documentation

  • New Guide: docs/integration-guides/usecases/solace-event-integration.md
  • Related Assets: assets/integration-guides/usecases/solance-event-integration/ (GIFs and Screenshots)

Automation tests

  • Integration tests

    Verified manually using a Solace Docker container (solace/solace-pubsub-standard:latest). Confirmed that messages published to the ecommerce/orders/*/status topic are correctly consumed and conditionally routed to the notification queue.

Security checks

  • Followed secure coding standards? Yes
  • Ran FindSecurityBugs plugin and verified report? Yes
  • Confirmed that this PR doesn't commit any keys, passwords, tokens, usernames, or other secrets? Yes

Samples

  • Sample ORDER_SHIPPED JSON payload included in the guide.
  • Docker run command provided for environment reproducibility.

Test environment

  • OS: Ubuntu 22.04
  • JDK: 11 & 17
  • Broker: Solace PubSub+ Standard
  • Tooling: WSO2 Integrator: BI

Learning

Researched Solace SMF protocol connectivity and internal database authentication for client usernames.

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive tutorial: building an e‑commerce order notification service with Solace Event Integration, covering setup, broker configuration, event structure, consumer/producer steps, conditional workflows, payload handling, testing scenarios, and troubleshooting.
  • New Features
    • Added a new navigation entry under Use Cases linking to the Solace Event Integration tutorial.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 16, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a new comprehensive guide documenting how to build an e-commerce order notification service using Solace Event Integration with WSO2 Integrator, and adds a navigation entry in the mkdocs configuration to surface the guide.

Changes

Cohort / File(s) Summary
Navigation Configuration
en/mkdocs.yml
Inserted a Use Cases navigation entry linking to the new Solace Event Integration e‑commerce order notification guide.
Event Integration Guide (new)
en/docs/integration-guides/usecases/solace-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md
Added a full tutorial covering prerequisites, event schema, Solace broker setup (VPN, queues, topics, credentials), creating a Solace Event Integration artifact, connection settings, payload mapping, conditional publish logic, consumer implementation, test scenarios, and troubleshooting.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A guide hops into view so bright,
With Solace whispers and queues in flight,
Orders ripple, events take wing,
Notifications wake and sing,
Hooray—messages dancing into the night! 🥕✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Add Solance event integration use case documentation' is directly related to the main change—adding documentation for Solace event integration use cases. However, there is a spelling error: 'Solance' should be 'Solace'.
Description check ✅ Passed The PR description covers most required template sections comprehensively: Purpose, Goals, Approach, Release note, Documentation, Security checks, Samples, and Test environment. However, several sections are missing or marked N/A: User stories, Training, Certification, Marketing, Automation tests (Unit tests), Related PRs, and Migrations.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 11

🤖 Fix all issues with AI agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`:
- Around line 131-136: The doc uses quoted UI labels; replace the quoted labels
with bold formatting and remove the quotes — update "Access Control", "Client
Usernames", "+ Client Username", "Change Password", and "Apply" to **Access
Control**, **Client Usernames**, **+ Client Username**, **Change Password**, and
**Apply** respectively in the step list (look for these exact strings in the
step block and swap quoting for bold per the guideline).
- Line 82: Replace the non-descriptive link text "here" with a descriptive
phrase like "Message VPNs documentation" in the markdown list item that mentions
Message VPN (the line containing "**Message VPN:** `ecommerce-vpn`" and the
inline link). Update the link target so the markdown reads something like
"(Learn more about message VPNs in the Message VPNs documentation)" or similar,
keeping the existing URL but replacing the link text to be descriptive.
- Around line 40-41: Replace the raw URLs on the two lines with descriptive
Markdown link text: convert
"https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm"
to a link labeled like "Solace Broker container setup" and convert
"https://console.solace.cloud/" to a link labeled like "Solace PubSub+ Cloud
(free tier)"; update the text in the same sentences so readers see descriptive
labels instead of bare URLs (target the lines containing the two raw URLs shown
in the diff).
- Around line 91-92: Update the UI labels on lines referencing "Change Vpn" and
"+ Message VPN": change "Change Vpn" to use the all‑caps acronym "VPN" and wrap
both UI labels/button names in bold formatting (i.e., replace Change Vpn with
**Change VPN** and + Message VPN with **+ Message VPN**) so they follow the
documentation guideline of bolding UI labels.
- Line 111: The document contains a broken reference-style image tag
`![][image3]` with no `[image3]: ...` definition; fix it by either replacing
`![][image3]` with an inline image markdown `![alt
text](relative-or-absolute-path/to/actual-filename.png)` pointing to the correct
screenshot file, or add a reference definition near the bottom of the document
like `[image3]: /assets/path/actual-filename.png` and ensure the filename/path
matches the repository asset name.
- Around line 480-485: The JSON example in the statusDetails object uses the
string "null" for carrier and trackingNumber which is misleading; change
"carrier": "null" and "trackingNumber": "null" to real JSON null values
(carrier: null, trackingNumber: null) inside the statusDetails example, or if
the string values are intentional because they mirror an upstream format, add a
brief inline note next to the statusDetails example stating that those fields
are literal strings from the upstream system rather than JSON nulls so readers
aren’t confused.
- Line 457: The documentation uses special symbols for equality/inequality in
the example sentence that reads about consuming from `fulfillment.orders.status`
and publishing to `fulfillment.orders.notification` (it currently shows
`previousStatus` (`ORDER_CONFIRMED`) ≠ `newStatus` (`ORDER_SHIPPED`) and
elsewhere a bare `=`); update these occurrences to plain English (e.g.,
"previousStatus (ORDER_CONFIRMED) is not equal to newStatus (ORDER_SHIPPED)" and
"previousStatus equals newStatus") so the text avoids decorative/special symbols
while preserving the original meaning and identifiers.
- Around line 76-89: The document uses h4 (####) for all step headings under the
h2 sections "Part 1: Configuring the Solace broker", "Part 2", and "Part 3",
which breaks heading hierarchy and accessibility; update each step heading such
as "Step 1: Create a message VPN" and other sub-headings currently using "####"
to "###" so they are proper children of the h2 Part headings, and additionally
change any "Test case" sub-headings currently using "#####" to "####" under Part
3 to restore correct nesting.
- Line 1: The directory name "solance-event-integration" is misspelled—rename
the folder to "solace-event-integration" (both content and assets directories),
update any references in navigation configuration (en/mkdocs.yml nav entries
pointing to en/docs/integration-guides/usecases/solance-event-integration) and
fix all asset links inside the markdown file (references to
en/docs/assets/integration-guides/usecases/solance-event-integration) to the
corrected "solace-event-integration" path so URLs and asset paths remain
consistent.

In `@en/mkdocs.yml`:
- Around line 292-293: The base_path was changed from the production value to a
local dev URL; revert the change by restoring base_path:
https://wso2.github.io/docs-bi (uncomment the original production line) and
remove or keep the http://localhost:8000 entry only in a local/dev-only config,
ensuring the mkdocs.yml base_path points to the production URL (reference the
base_path key in mkdocs.yml).
- Line 113: Update the nav entry in mkdocs.yml that currently references
"integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md"
to use the corrected directory name "solace-event-integration" so the path
becomes
"integration-guides/usecases/solace-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md";
ensure this string exactly matches the corrected directory name used in the
documentation files (update any other nav entries if they contain the same
"solance" typo).
🧹 Nitpick comments (1)
en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md (1)

32-32: Docker port mapping mismatch: host 55554 maps to container 55555.

The command maps -p 55554:55555, meaning the host port is 55554 but the container's SMF port is 55555. Later in the doc, smf://localhost:55554 is used consistently, which is correct given this mapping. However, the non-standard host port choice (differing from the container port) could confuse readers. Consider adding a brief inline note explaining why the host port differs, or simply map -p 55555:55555 and use port 55555 throughout for consistency.

Comment on lines +40 to +41
* For detailed setup instructions, see: [https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm](https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm)
* Alternatively, if you prefer not to deploy Solace locally, you can use Solace PubSub+ Cloud (free tier): [https://console.solace.cloud/](https://console.solace.cloud/)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use descriptive link text instead of raw URLs.

Per the coding guidelines, raw URLs should be wrapped with descriptive link text. Lines 40 and 41 expose bare URLs.

Proposed fix
-* For detailed setup instructions, see: [https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm](https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm)  
-* Alternatively, if you prefer not to deploy Solace locally, you can use Solace PubSub+ Cloud (free tier): [https://console.solace.cloud/](https://console.solace.cloud/)
+* For detailed setup instructions, see the [Solace container image setup guide](https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm).
+* Alternatively, if you prefer not to deploy Solace locally, you can use [Solace PubSub+ Cloud (free tier)](https://console.solace.cloud/).

As per coding guidelines, "Use descriptive link text instead of raw URLs (for example, Azure portal instead of https://portal.azure.com) in documentation".

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* For detailed setup instructions, see: [https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm](https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm)
* Alternatively, if you prefer not to deploy Solace locally, you can use Solace PubSub+ Cloud (free tier): [https://console.solace.cloud/](https://console.solace.cloud/)
* For detailed setup instructions, see the [Solace container image setup guide](https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm).
* Alternatively, if you prefer not to deploy Solace locally, you can use [Solace PubSub+ Cloud (free tier)](https://console.solace.cloud/).
🤖 Prompt for AI Agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
around lines 40 - 41, Replace the raw URLs on the two lines with descriptive
Markdown link text: convert
"https://docs.solace.com/Software-Broker/SW-Broker-Set-Up/Containers/Set-Up-Container-Image.htm"
to a link labeled like "Solace Broker container setup" and convert
"https://console.solace.cloud/" to a link labeled like "Solace PubSub+ Cloud
(free tier)"; update the text in the same sentences so readers see descriptive
labels instead of bare URLs (target the lines containing the two raw URLs shown
in the diff).

Comment on lines +76 to +89
## Part 1: Configuring the Solace broker

In this section, we'll set up the Solace broker infrastructure needed for our e-commerce order notification service. We'll create a Message VPN to isolate our messaging environment, set up a queue to store order status events, and configure a topic subscription to route messages to that queue.

#### What we're setting up:

* **Message VPN:** `ecommerce-vpn` \- isolated messaging environment for our application (Learn more about message VPNs [here](https://docs.solace.com/Get-Started/message-vpn.htm))
* **Queue:** `fulfillment.orders.status` \- stores incoming order events.
* **Topic subscription:** `ecommerce/orders/*/status` \- routes events to the queue
* **User credentials:** for secure access to the broker

Access the Web UI of Solace Software Event Broker, usually available at [http://localhost:8080](http://localhost:8080), and then follow these steps to configure your broker.

#### Step 1: Create a message VPN
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Heading levels skip from ## (h2) to #### (h4), violating heading hierarchy.

All sub-headings under "Part 1" (lines 80, 89, 113, 129, 148, 164, 180) use #### (h4) but should be ### (h3) since their parent is ## (h2). The same pattern applies under "Part 2" (line 216+) and "Part 3" (line 351+). This also breaks accessibility for screen readers navigating by heading level.

Proposed fix (apply throughout the file)
-#### What we're setting up:
+### What we're setting up

-#### Step 1: Create a message VPN
+### Step 1: Create a message VPN

Apply the same ####### change to all step headings under each ## Part section, and ######### for "Test case" sub-headings under Part 3.

🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 80-80: Heading levels should only increment by one level at a time
Expected: h3; Actual: h4

(MD001, heading-increment)


[warning] 82-82: Link text should be descriptive

(MD059, descriptive-link-text)

🤖 Prompt for AI Agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
around lines 76 - 89, The document uses h4 (####) for all step headings under
the h2 sections "Part 1: Configuring the Solace broker", "Part 2", and "Part 3",
which breaks heading hierarchy and accessibility; update each step heading such
as "Step 1: Create a message VPN" and other sub-headings currently using "####"
to "###" so they are proper children of the h2 Part headings, and additionally
change any "Test case" sub-headings currently using "#####" to "####" under Part
3 to restore correct nesting.


#### What we're setting up:

* **Message VPN:** `ecommerce-vpn` \- isolated messaging environment for our application (Learn more about message VPNs [here](https://docs.solace.com/Get-Started/message-vpn.htm))
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Non-descriptive link text "here".

Proposed fix
-* **Message VPN:** `ecommerce-vpn` \- isolated messaging environment for our application (Learn more about message VPNs [here](https://docs.solace.com/Get-Started/message-vpn.htm))  
+* **Message VPN:** `ecommerce-vpn` \- isolated messaging environment for our application. Learn more about [Solace message VPNs](https://docs.solace.com/Get-Started/message-vpn.htm).

As per coding guidelines, "Use descriptive link text instead of raw URLs".

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* **Message VPN:** `ecommerce-vpn` \- isolated messaging environment for our application (Learn more about message VPNs [here](https://docs.solace.com/Get-Started/message-vpn.htm))
* **Message VPN:** `ecommerce-vpn` \- isolated messaging environment for our application. Learn more about [Solace message VPNs](https://docs.solace.com/Get-Started/message-vpn.htm).
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 82-82: Link text should be descriptive

(MD059, descriptive-link-text)

🤖 Prompt for AI Agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
at line 82, Replace the non-descriptive link text "here" with a descriptive
phrase like "Message VPNs documentation" in the markdown list item that mentions
Message VPN (the line containing "**Message VPN:** `ecommerce-vpn`" and the
inline link). Update the link target so the markdown reads something like
"(Learn more about message VPNs in the Message VPNs documentation)" or similar,
keeping the existing URL but replacing the link text to be descriptive.

Comment on lines +91 to +92
1. Click Change Vpn from the side panel.
2. Click \+ Message VPN.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Bold UI labels for consistency.

Per the guidelines, UI labels and button names should be in bold. "Change Vpn" and "+ Message VPN" on lines 91–92 are not bolded. Additionally, "Vpn" should likely be "VPN" (all caps acronym).

Proposed fix
-1. Click Change Vpn from the side panel.  
-2. Click \+ Message VPN.
+1. Click **Change VPN** from the side panel.  
+2. Click **+ Message VPN**.

As per coding guidelines, "Enclose UI labels and button names in bold (for example, Create) in documentation".

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
1. Click Change Vpn from the side panel.
2. Click \+ Message VPN.
1. Click **Change VPN** from the side panel.
2. Click **+ Message VPN**.
🤖 Prompt for AI Agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
around lines 91 - 92, Update the UI labels on lines referencing "Change Vpn" and
"+ Message VPN": change "Change Vpn" to use the all‑caps acronym "VPN" and wrap
both UI labels/button names in bold formatting (i.e., replace Change Vpn with
**Change VPN** and + Message VPN with **+ Message VPN**) so they follow the
documentation guideline of bolding UI labels.

3. Maximum Message Spool Usage: 100MB
4. Enabled: On

![][image3]
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Broken image reference: ![][image3] is undefined.

This reference-style image link has no corresponding [image3]: ... definition anywhere in the document, so it will render as literal text or a broken image. Either define the reference or replace it with an inline image tag pointing to the correct asset.

-![][image3]
+<div style="text-align: center;">
+   <a href="{{base_path}}/assets/integration-guides/usecases/solance-event-integration/configure-message-vpn.png">
+      <img
+      src="{{base_path}}/assets/integration-guides/usecases/solance-event-integration/configure-message-vpn.png"
+         alt="Message VPN configuration settings"
+         width="80%"
+      />
+   </a>
+</div>

Replace the src/href with the actual filename of the missing screenshot.

🤖 Prompt for AI Agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
at line 111, The document contains a broken reference-style image tag
`![][image3]` with no `[image3]: ...` definition; fix it by either replacing
`![][image3]` with an inline image markdown `![alt
text](relative-or-absolute-path/to/actual-filename.png)` pointing to the correct
screenshot file, or add a reference definition near the bottom of the document
like `[image3]: /assets/path/actual-filename.png` and ensure the filename/path
matches the repository asset name.

Comment on lines +131 to +136
1. Navigate to "Access Control" in the VPN settings.
2. Click “Client Usernames” in the top bar.
3. Click “+ Client Username” and create a new Client Username: `fulfillment-service`.
4. Enable the created Client Username.
5. Click “Change Password” and set the password to: `fulfillment-pass`.
6. Click Apply.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Wrap UI labels in bold and avoid quoting them.

Navigation items and button labels like "Access Control", "Client Usernames", "+ Client Username", "Change Password", and "Apply" should use bold formatting rather than quotes.

Proposed fix
-1. Navigate to "Access Control" in the VPN settings.  
-2. Click "Client Usernames" in the top bar.  
-3. Click "+ Client Username" and create a new Client Username: `fulfillment-service`.  
-4. Enable the created Client Username.  
-5. Click "Change Password" and set the password to: `fulfillment-pass`.  
-6. Click Apply.
+1. Navigate to **Access Control** in the VPN settings.  
+2. Click **Client Usernames** in the top bar.  
+3. Click **+ Client Username** and create a new client username: `fulfillment-service`.  
+4. Enable the created client username.  
+5. Click **Change Password** and set the password to: `fulfillment-pass`.  
+6. Click **Apply**.

As per coding guidelines, "Enclose UI labels and button names in bold (for example, Create) in documentation".

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
1. Navigate to "Access Control" in the VPN settings.
2. Click Client Usernames in the top bar.
3. Click + Client Username and create a new Client Username: `fulfillment-service`.
4. Enable the created Client Username.
5. Click Change Password and set the password to: `fulfillment-pass`.
6. Click Apply.
1. Navigate to **Access Control** in the VPN settings.
2. Click **Client Usernames** in the top bar.
3. Click **+ Client Username** and create a new client username: `fulfillment-service`.
4. Enable the created client username.
5. Click **Change Password** and set the password to: `fulfillment-pass`.
6. Click **Apply**.
🤖 Prompt for AI Agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
around lines 131 - 136, The doc uses quoted UI labels; replace the quoted labels
with bold formatting and remove the quotes — update "Access Control", "Client
Usernames", "+ Client Username", "Change Password", and "Apply" to **Access
Control**, **Client Usernames**, **+ Client Username**, **Change Password**, and
**Apply** respectively in the step list (look for these exact strings in the
step block and swap quoting for bold per the guideline).

}
```

**Expected Result:** The message should be consumed from `fulfillment.orders.status` and then published to `fulfillment.orders.notification` because `previousStatus` (`ORDER_CONFIRMED`) ≠ `newStatus` (`ORDER_SHIPPED`).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Avoid special symbols (, =) in body text.

Lines 457 and 489 use and a bare = to denote inequality/equality. Replace with plain English for clarity and guideline compliance.

Proposed fix
-**Expected Result:** The message should be consumed from `fulfillment.orders.status` and then published to `fulfillment.orders.notification` because `previousStatus` (`ORDER_CONFIRMED`) ≠ `newStatus` (`ORDER_SHIPPED`).
+**Expected Result:** The message should be consumed from `fulfillment.orders.status` and then published to `fulfillment.orders.notification` because `previousStatus` (`ORDER_CONFIRMED`) is not equal to `newStatus` (`ORDER_SHIPPED`).
-**Expected Result:** The message should be consumed from `fulfillment.orders.status` but will NOT be published to `fulfillment.orders.notification` because `previousStatus` (`ORDER_CONFIRMED`) \= `newStatus` (`ORDER_CONFIRMED`). The If condition will evaluate to false, and the message producer will not be triggered.
+**Expected Result:** The message should be consumed from `fulfillment.orders.status` but will NOT be published to `fulfillment.orders.notification` because `previousStatus` (`ORDER_CONFIRMED`) equals `newStatus` (`ORDER_CONFIRMED`). The If condition evaluates to false, and the message producer is not triggered.

As per coding guidelines, "Do NOT use decorative or special symbols (like ¶, →, ») in headings or text in documentation".

🤖 Prompt for AI Agents
In
`@en/docs/integration-guides/usecases/solance-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
at line 457, The documentation uses special symbols for equality/inequality in
the example sentence that reads about consuming from `fulfillment.orders.status`
and publishing to `fulfillment.orders.notification` (it currently shows
`previousStatus` (`ORDER_CONFIRMED`) ≠ `newStatus` (`ORDER_SHIPPED`) and
elsewhere a bare `=`); update these occurrences to plain English (e.g.,
"previousStatus (ORDER_CONFIRMED) is not equal to newStatus (ORDER_SHIPPED)" and
"previousStatus equals newStatus") so the text avoids decorative/special symbols
while preserving the original meaning and identifiers.

@Sachindu-Nethmin Sachindu-Nethmin marked this pull request as draft February 16, 2026 12:06
- Rename directory 'solance-event-integration' to 'solace-event-integration' to fix typo.
- Rename assets directory from 'solance-event-integration' to 'solace-event-integration'.
- Update all image and file references in 'building-a-e-commerce-order-notification-service-with-solace-event-integration.md' to use the correct path.
- Update navigation link in 'en/mkdocs.yml' to point to the corrected directory.
@Sachindu-Nethmin Sachindu-Nethmin marked this pull request as ready for review February 26, 2026 08:33
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In
`@en/docs/integration-guides/usecases/solace-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`:
- Around line 38-41: The documentation uses raw URLs as visible link text (e.g.,
"http://localhost:8080") which reduces readability and accessibility; update the
three occurrences referenced (the PubSub+ Manager link at the block containing
"http://localhost:8080", the "Solace Broker container setup" link, and the
"Solace PubSub+ Cloud (free tier)" link) to use descriptive link text such as
"Access PubSub+ Manager", "Solace Broker container setup guide", and "Solace
PubSub+ Cloud (free tier)" respectively so the markdown link target remains the
same but the visible text is descriptive and accessible.
- Line 1: Update all document headings to sentence case: for the title "Building
an E-commerce Order Notification Service with Solace Event Integration" and the
other headings noted in the review (the headings at the three flagged
locations), change them from title case to sentence case (capitalize only the
first word and any proper nouns, e.g., "Building an e-commerce order
notification service with Solace event integration"). Ensure every heading
throughout the file follows this rule so capitalization is consistent.
- Around line 113-114: Update the documentation to format all UI labels and
button names in bold (e.g., change plain/inline code tokens like Create, Message
VPNs, ecommerce-vpn, Queues, Subscriptions, Connect, Save to **Create**,
**Message VPNs**, **ecommerce-vpn**, **Queues**, **Subscriptions**, **Connect**,
**Save**). Search the file for these UI tokens and the ranges noted (around the
occurrences at lines referenced) and replace plain text or backticked tokens
with bolded tokens so all UI controls are consistently styled across the
document.
- Around line 76-80: The "What we're setting up:" heading under "Part 1:
Configuring the Solace broker" drops from a level-2 (##) to level-4 (####),
violating heading hierarchy (MD001); change that subheading to level-3 (### What
we're setting up:) so it sits directly under "Part 1: Configuring the Solace
broker" and preserves proper document structure per the Microsoft Style Guide.

ℹ️ Review info

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 9dc9f9c and 55fccc7.

⛔ Files ignored due to path filters (20)
  • en/docs/assets/integration-guides/usecases/solace-event-integration/add-conditional-logic.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/add-log-info-node.png is excluded by !**/*.png
  • en/docs/assets/integration-guides/usecases/solace-event-integration/add-onmessage-handler.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/add-solace-event-artifact.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/add-topic-subscription.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/configure-solace-listener.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/create-client-username.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/create-fulfillment-orders-queue.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/create-integration-project.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/create-message-vpn.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/create-notification-queue.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/create-solace-producer.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/final-business-logic-test.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/map-payload.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/publish-test-event-try-me.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/run-test-integration.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/save-solace-integration.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/set-default-user-password.gif is excluded by !**/*.gif
  • en/docs/assets/integration-guides/usecases/solace-event-integration/solace-event-integration-architecture.png is excluded by !**/*.png
  • en/docs/assets/integration-guides/usecases/solace-event-integration/verify-queued-message.gif is excluded by !**/*.gif
📒 Files selected for processing (2)
  • en/docs/integration-guides/usecases/solace-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md
  • en/mkdocs.yml
🚧 Files skipped from review as they are similar to previous changes (1)
  • en/mkdocs.yml

@@ -0,0 +1,513 @@
# Building an E-commerce Order Notification Service with Solace Event Integration
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Normalize headings to sentence case.

Several headings are title-cased instead of sentence case (for example, Lines 1, 89, 110, 126).

Suggested fix
-# Building an E-commerce Order Notification Service with Solace Event Integration
+# Building an e-commerce order notification service with Solace Event Integration

-### Step 1: Create a message VPN
+### Step 1: Create a message VPN

-### Step 2: Configure default user password
+### Step 2: Configure default user password

As per coding guidelines, use sentence case for all headings (capitalize only the first word and proper nouns) in documentation.

Also applies to: 89-89, 110-110, 126-126

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@en/docs/integration-guides/usecases/solace-event-integration/building-a-e-commerce-order-notification-service-with-solace-event-integration.md`
at line 1, Update all document headings to sentence case: for the title
"Building an E-commerce Order Notification Service with Solace Event
Integration" and the other headings noted in the review (the headings at the
three flagged locations), change them from title case to sentence case
(capitalize only the first word and any proper nouns, e.g., "Building an
e-commerce order notification service with Solace event integration"). Ensure
every heading throughout the file follows this rule so capitalization is
consistent.

Sachindu-Nethmin and others added 3 commits March 4, 2026 09:15
Co-authored-by: Anupama Pathirage <anupama@wso2.com>
- Remove bold formatting from non-UI elements (labels, keys, notes) for better readability.
- Update UI element references (buttons, tabs, fields) to use bold formatting instead of double quotes, following standard style conventions.
- Add link to the official Solace website.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants