Case Study

Two-Way Chat Architecture

Built a reliable, observable chat system to support real-time messaging experiences across multiple platforms.

Real-Time SystemsCross-Platform2025

Overview

Designed and implemented a two-way chat and messaging feature within an existing multi-tenant SaaS platform, evolving it from one-directional notifications into a real-time communication system used by operational teams and end users. The goal was to introduce chat functionality that was reliable, scalable, and secure, without destabilising a mature production system already used by enterprise customers.

Problem

Communication happened mainly outside the system, fragmenting context and slowing operational response. Key constraints:

  • Existing system was already live and business-critical.
  • Multi-tenant data separation was essential.
  • Real-time updates were required, but reliability mattered more than speed.
  • Needed to allow multiple operators to message users without conflicts or duplication.

Solution

Implemented event-driven messaging, resilient websocket handling, and observability for throughput monitoring.

  • Designed a conversation-based data model supporting, participants, groups and messages
  • Implemented API endpoints and EF Core migrations to persist conversations securely per tenant
  • Used SignalR for real-time communication with REST fallbacks for resilience.
  • Integrated with existing auth systems to ensure tenant isolation and role-based access.
  • Added monitoring and logging to track message flow, delivery success, and system performance.

Outcome

Improved delivery reliability and real-time responsiveness while supporting higher concurrent usage.

  • Enabled real-time, contextual communication directly inside the platform.
  • Reduced reliance on external messaging tools and email chains.
  • Introduced notification system which can be extended across the platform for other use cases.
  • Established a foundation for future client collaboration features.
  • Done in-house so no constraints with 3rd party products allowing for full flexibility.

Role

Owned the system design, architected, led backend implementation, and partnered with mobile teams for client integration.

Tech Stack

C#ASP.NET CoreSignalRReactTypeScriptEntity Framework coreSQL ServerAzure