Real-Time Messaging & Notifications

A comprehensive messaging platform that provides real-time chat functionality and notification delivery for your applications. Built on industry-standard WebSocket technology and REST APIs. Designed for seamless integration. No need to build messaging infrastructure from scratch. Integrate with simple APIs, and launch your products in record time.

Messaging service illustration
Scroll to explore

Quick Start

Get started with real-time messaging in minutes, with Agglestone's Messaging Service. Connect to the WebSocket hub and start receiving messages instantly.

// Install: npm install @microsoft/signalr@^10.0.0 // Connect to SignalR hub for real-time messaging import * as signalR from '@microsoft/signalr'; const tenantId = 'your-tenant-id'; // Get from https://portal.agglestone.com const apiBaseUrl = 'https://messaging.agglestone.com'; const clientId = crypto.randomUUID(); const connection = new signalR.HubConnectionBuilder()   .withUrl(`${apiBaseUrl}/tenant/${tenantId}/v1/hub?clientId=${clientId}`, {     accessTokenFactory: () => accessToken // JWT token from authentication service   })   .withAutomaticReconnect()   .build(); // Listen for messaging events connection.on("MessagingEvent", async (event) => {   // Fetch full message details from REST API   const message = await fetch(`${apiBaseUrl}/tenant/${tenantId}/v1/Chat/${event.parentId}/messages/${event.id}`); }); await connection.start();

Powerful Messaging & Notification Features

Our service provides everything you need for real-time communication and notification delivery. Built on industry-standard protocols and designed for modern applications.

Real-Time Chat

Enable instant messaging between users with full real-time capabilities. Create chat channels, send messages, and receive instant notifications when new messages arrive.

WebSocket Support

Built on WebSockets (RFC 6455) and SignalR for reliable real-time bidirectional communication. Automatic reconnection ensures messages are never lost.

Notification Inbox

Each user has their own personal inbox where all notifications are stored. Users can paginate through messages, mark them as read, and manage their notification history.

Email Delivery

Notifications can optionally be delivered via email, ensuring users never miss important messages even when they're not actively using your application.

Message Persistence

All chat messages and notifications are persisted in the database. Users can retrieve conversation history and catch up on messages they missed while offline.

REST APIs

Comprehensive REST APIs for all messaging operations. Create chats, send messages, manage notifications, and retrieve conversation history with standard HTTP requests.

Rich Content

Notifications support both plain text and HTML content, allowing you to include links, formatting, and structured content for engaging user experiences.

Priority Levels

Set priority levels for notifications (Low, Normal, High, Urgent) to help users prioritize which messages to read first and surface the most important content.

Scheduled Notifications

Schedule notifications for future delivery. Create notifications now and have them delivered at a specified time, perfect for reminders and scheduled announcements.

Chat Channels

Create chat channels with multiple members. Manage membership, add and remove users, and control access to conversations.

Notification Types

Support for different notification types including user invites, registration welcomes, system announcements, password resets, and account verifications.

JWT Authentication

Secure, token-based access control using JWT tokens from the Agglestone Authentication and User Management Service. All requests are authenticated and authorized.

Multi-Device Support

Users can connect from multiple devices and browser tabs. Messages and notifications are synchronized across all connected clients in real-time.

Multi-Tenant Architecture

Built-in multi-tenancy with complete tenant isolation. Every request is tenant-scoped, ensuring data security and separation between organizations.

Real-Time Chat

Enable instant messaging between users in your application with full real-time capabilities. Users can create chat channels, send messages, and receive instant notifications when new messages arrive.

Chat Channels

Create chat channels with multiple members. All members receive real-time notifications when messages are sent, enabling true instant messaging. Chat channels support:

  • Multiple Members: Add multiple users to chat channels for group conversations
  • Member Management: Add and remove members as needed, with access control
  • Message History: All messages are persisted and can be retrieved with pagination
  • Real-Time Delivery: Instant WebSocket notifications to all online members

Message Management

Send messages to any chat you're a member of. Messages are immediately delivered to all chat members through their WebSocket connections, providing instant real-time communication. Messages are also persisted in the database, so users can retrieve conversation history even if they were offline.

Notification Delivery

Send account creation, alerts, general and system messages to users. Each user has their own inbox where all notification messages are stored, allowing them to paginate through their messages, mark them as read, and manage their notification history.

Personal Inbox

Every user has their own personal inbox where all notifications are stored. This inbox acts as a complete record of all messages sent to the user, allowing them to:

  • View their notification history
  • Paginate through messages
  • Mark notifications as read or unread
  • Delete notifications they no longer need
  • Filter notifications by date range

Email Delivery

Notifications can optionally be delivered via email in addition to being stored in the inbox. When you create a notification, you can specify whether it should also be sent as an email. This ensures users never miss important messages even when they're not actively using your application.

Notification Types

Notifications support different types to help categorize and handle them appropriately, including user invites, registration welcomes, system announcements, password resets, and account verifications. This categorization helps users understand the nature of each notification and allows your application to handle different notification types appropriately.

Standards-Based & Developer-Friendly

We believe in using industry standards because they make your life easier. Built on WebSocket technology and REST APIs, the Messaging Service implements:

WebSockets (RFC 6455)

Real-time bidirectional communication using the WebSocket protocol. The service uses SignalR for reliable WebSocket connections with automatic reconnection, ensuring messages are delivered even when network conditions are less than perfect.

REST APIs

All messaging and notification operations are available through standard REST APIs following HTTP conventions. Use any HTTP client library to integrate messaging into your application.

JWT Authentication

Secure, token-based access control using JWT tokens issued by the Agglestone Authentication and User Management Service. All API requests and WebSocket connections are authenticated and authorized.

This means you can use your favorite WebSocket, SignalR, and HTTP client libraries, and they'll work out of the box, with only small configurations.

Multi-Tenant Architecture

Built from the ground up for multi-tenancy. Every request is tenant-scoped, ensuring complete data isolation and security between tenants.

Tenant Isolation

All data, chats, messages, and notifications are isolated per tenant. Users from one tenant cannot access data from another tenant, even with valid credentials.

URL Structure

Every API request includes the tenant ID in the URL path:

https://messaging.agglestone.com/tenant/{tenantId}/v1/Chat https://messaging.agglestone.com/tenant/{tenantId}/v1/Notifications https://messaging.agglestone.com/tenant/{tenantId}/v1/hub

Tenant Validation

The service validates that:

  • Tokens belong to the tenant specified in the URL
  • API keys belong to the tenant making the request
  • Users can only access resources within their tenant
  • Chats and notifications are scoped to a single tenant

Benefits

  • Complete isolation: Each tenant's data is completely separate
  • Scalability: Support unlimited tenants on a single infrastructure
  • Security: Tenant ID validation on every request prevents cross-tenant access
  • Flexibility: Different tenants can have different configurations