Project

General

Profile

Actions

Feature #750

open

POC: Clinic-wise Data Sync using RabbitMQ between Windows Service and Server

Added by RishiKesh Tuniki 17 days ago. Updated 9 days ago.

Status:
Resolved
Priority:
Normal
Assignee:
Start date:
02/03/2026
Due date:
02/11/2026 (8 days late)
% Done:

0%

Estimated time:
Test Phase:
Unit Test

Description

Before Starting Let's Clarify this Queries:

This is the architecture i found for Rabbit MQ

RabbitMQ Server
 ├── Virtual Host (vhost)
 │    ├── Exchanges
 │    ├── Queues
 │    └── Bindings
 │
 └── Connections (TCP)
      └── Channels
           └── (Used to publish / consume)

This what i found for our Requirements is this possible?

We need to build a demo / proof of concept to validate clinic-wise data synchronization using RabbitMQ.

In this setup:

  • A Windows Service installed in the clinic network will act as a producer
  • A central server will host RabbitMQ and act as the message broker
  • The server will create and manage unique queues per clinic per API and process messages independently

This demo will help validate:

  1. Clinic-level isolation
  2. API-level processing
  3. Scalability and fault tolerance

🎯 Objective

Demonstrate a working flow where:

  1. Windows Service sends clinic-specific data to the server
  2. Server routes messages using RabbitMQ
  3. Unique queues are created per Clinic + API
  4. Messages are consumed and processed successfully

🧱 Proposed Architecture (High Level)

1️⃣ Windows Service (Clinic Side)

  • Installed inside clinic network

  • Acts as a stateless producer

  • Sends data/events to RabbitMQ hosted on the server

  • Publishes messages with:

    • TenantId
    • ClinicId
    • API / Entity Type (Patient, Appointment, etc.)

    ❗ Windows Service will NOT manage queues or channels
    2️⃣ Server Side (RabbitMQ)

  • RabbitMQ hosted centrally

  • Responsible for:

    • Exchange creation
    • Queue creation
    • Queue bindings
      *Creates unique durable queues per:
Clinic + API

Example Queue Naming:

dentpal.clinic.{clinicId}.patient.sync
dentpal.clinic.{clinicId}.appointment.sync
dentpal.clinic.{clinicId}.payment.sync

3️⃣ Consumer / Processor

  • Server-side consumers will:

    • Listen to API-specific queues
    • Process messages independently
    • Acknowledge messages after successful processing
      g

🧪 Demo Scope

For this POC:

  • One Windows Service instance

  • One clinic (configurable ClinicId)

  • At least 2 APIs

    • Patient Sync
    • Appointment Sync
  • Basic logging for:

    • Message published
    • Message received
    • Queue name used

Files

clipboard-202602031456-olxzf.png (36.1 KB) clipboard-202602031456-olxzf.png RishiKesh Tuniki, 02/03/2026 04:26 AM
clipboard-202602031456-olxzf.png
Actions #1

Updated by RishiKesh Tuniki 17 days ago

  • Description updated (diff)
Actions #3

Updated by RishiKesh Tuniki 15 days ago

  • Tracker changed from Bug to Feature
  • Severity deleted (Select Severity)
Actions #4

Updated by RishiKesh Tuniki 15 days ago

  • Due date changed from 02/07/2026 to 02/11/2026
  • Test Phase changed from Select Test Phase to Unit Test
Actions #5

Updated by RishiKesh Tuniki 15 days ago

  • Project changed from DentPal - CONNECT to Connect-GOLD
Actions #6

Updated by Thuan L 9 days ago

  • Status changed from New to Resolved
Actions

Also available in: Atom PDF