Channels Service

The Communication Service is a crucial component of our platform, responsible for facilitating communication with users through various channels, including SMS, Emails, and Push Notifications. This document provides an overview of the architecture and functionality of the Communication Service, including its integration options, client-specific channel selection, and time regulations.

Architecture

The Communication Service follows a flexible and scalable architecture, comprising the following key components:

  1. Communication Channels: The service supports multiple communication channels, including:

    • SMS: Allows sending short text messages to users' mobile devices.

    • Emails: Enables sending emails to users' email addresses.

    • Push Notifications: Facilitates sending push notifications to users' mobile devices.

  2. Integration Options:

    • Send API: Clients can use the Send API to directly send messages through the supported communication channels. The service exposes APIs for each communication channel to facilitate integration.

    • Send from Kafka Topic: Alternatively, clients can publish messages to specific Kafka topics, and the Communication Service consumes these messages to send notifications. This asynchronous messaging approach enables efficient handling of large volumes of messages.

  3. Client Identification: The Communication Service identifies clients based on the client ID provided with each message. This client ID determines the specific communication channel(s) used for sending messages to the client.

  4. Time Regulations: The Communication Service implements time regulations for the channels configured for each client. This functionality allows clients to define specific time windows during which messages can be sent through each communication channel.

Functionality

The Communication Service offers the following core functionality to clients:

  1. Message Sending:

    • Send API: Clients can initiate message sending directly through the Send API. Depending on the specified communication channel, the service delivers the message to the intended recipients.

    • Send from Kafka Topic: Clients can publish messages to designated Kafka topics, and the Communication Service consumes these messages to trigger message delivery through the appropriate channels.

  2. Channel Selection:

    • The Communication Service dynamically selects the communication channel(s) based on the client ID associated with each message.

    • Clients specify the desired communication channel(s) when sending messages through the Send API or publishing messages to Kafka topics.

  3. Time Regulations:

    • Clients can configure time regulations for each communication channel associated with their account.

    • The Communication Service enforces these time regulations, ensuring that messages are sent only within the specified time windows.

Integration with Communication Channels

The Communication Service seamlessly integrates with SMS gateways, email service providers, and push notification services to ensure reliable message delivery across various communication channels. Each integration adheres to industry standards and protocols for secure and efficient communication.

Usage Example

To illustrate the usage of the Communication Service, consider the following example:

  1. Client Initiation: A client initiates a message sending operation by calling the Send API or publishing a message to a Kafka topic, providing the necessary message content and recipient details, along with the client ID.

  2. Identification: The Communication Service identifies the client based on the provided client ID.

  3. Channel Selection: Based on the client ID, the Communication Service determines the appropriate communication channel(s) for sending the message.

  4. Time Regulations Enforcement: Before sending the message, the Communication Service verifies that the current time falls within the configured time window for each selected communication channel.

  5. Message Delivery: If the time regulations are met, the Communication Service sends the message through the selected communication channel(s) (e.g., SMS, Email, Push Notification).

  6. Acknowledgment: Upon successful delivery, the Communication Service provides acknowledgment to the client, confirming the message transmission.

Last updated