AdminAdmin is the default configuration that provides elevated permissions across the entire application. Admins can only be created server-side, and you can make any user an admin. While Admins are created server-side, they answer client-side requests. Moderation is a perfect example of this.
AndroidThe Android Kotlin Chat Messaging Software Development Kit (SDK) includes both a low-level chat SDK and reusable UI components together in a sample app.
API KeyAn API key is a unique key that consists of random numbers and characters. Combine API keys with API secrets to gain access to database information. API calls traditionally require a key to authenticate a user or organization.
API SecretAPI Secrets are similar to API keys in that you use them for security and tracking for data usage or manipulation.
An App ID is a unique identifier associated with your respective App.
Application Programming Interface (API)An API is a universal data format that allows apps to communicate with one another.
Artificial intelligenceArtificial intelligence is the simulation of human intelligence processes by machines, especially computer systems. Specific applications of AI include expert systems, natural language processing, speech recognition, and machine vision.
AsynchronousAsynchronous communication allows for users to receive information as data updates in real-time. The client and server establish an open connection so that any changes will trigger an update.
@Mentions@mentions are a keyboard command that allows chat users to tag others by their usernames. This command notifies the user mentioned immediately and is helpful to use when calling out one particular user in a group chat.
AttributesAttributes are packages of user information gained through a conversation in chat.
Augmented AnalyticsAnalytics is the process of discovering, interpreting, and communicating significant patterns in data. Augmented Analytics integrate AI-enabled cognitive services (natural language processing, knowledge engines) to provide a new way to analyze, process, crunch, and derive insights from data.
AuthenticationAuthentication is the process of verifying a user’s identity. Standard tools for user authentication are web tokens and multi-factor authentication for added security.
AuthorizationAuthorization occurs upon verification and authentication of a user, then granted or denied access to certain functionality or information. A user can be authenticated but not authorized to view or access certain areas.
BanUsers can be banned from an app entirely or from a channel for posting spammy or offensive content. When a user is banned, they will not be allowed to post messages until the ban is removed by an administrator or has expired, but after that, they will be able to connect to chat and to channels as before.
BandwidthBandwidth is the ability for information to be passed along at a specific rate. The higher the bandwidth, the more information can be transmitted at a faster pace.
BlocklistA blocklist is a list of words chat moderators can define to moderate message content. A unique blocklist can be assigned to each channel type to either block or flag messages that contain certain words.
BOSHBidirectional-streams Over Synchronous HTTP (BOSH) is a transport protocol that creates bi-directional TCP connectivity between client and server.
Business Associate Agreement (BAA)BAA (Business Associate Agreement) is a contract between a HIPAA-covered entity (the organization who is delivering the product), and HIPAA business associates (the organization or vendor working with the entity to store, transmit, or process PHI).
CacheCaching is the act of storing data or information for faster processing in the future. The cache will save pieces of information to preserve personal preferences or settings for future reference to increase the User Experience.
CassandraCassandra is a non-relational (NoSQL) database that can handle large data sets and access many simultaneous users. Cassandra handles data across multiple commodity servers to maintain quick responses and avoid failure points.
Channel TypeThe channel type defines the configurations and permissions (e.g., Livestream, Messaging, etc.).
Chat APIUse real-time chat and Messaging APIs to outsource comprehensive chat features without managing data or storage internally.
Chat as a Service (CaaS)CaaS is a software service that allows developers to integrate real-time chat and messaging into existing apps and websites.
Chat Channel (Chat Room)A Chat Channel uses asynchronous data transfers to send messages from each user to a specific channel. That channel can hold many users and display messages in real-time.
Chat WidgetA chat widget is a ready-to-use, customizable chat window on a website. Chat widgets can host chatbot technology and enable users to converse with it.
ChatbotA chatbot is a software tool that developers can add to existing chat applications. Chatbots enhance the user experience by quickly answering questions or routing users to other professionals who can help provide customer support.
ClientA client acts as the intermediary device between a user and a server. The client will send requests through a browser or application and display the response sent back by the server.
CloudCloud computing is the ability for many users to access server data remotely simultaneously. Users can send and receive requests via website or web application through the client-server relationship without physically interacting with the server.
Comet (Programming)Comet is a web application design paradigm that describes a continuous, two-way interaction between a server and a web browser using native HTTP methods.
ComponentA software component is a modular service that you can access independently through a larger application. Components can be organized throughout the file structure of an application or imported from a third-party provider.
ComposeThe Jetpack Compose Chat Messaging SDK is built on a low-level chat client and provides modular, customizable Compose UI components that you can easily drop into your app. You can also make API calls directly by using the client to add custom functionality.
Concurrent ConnectionsConcurrent connections reflect the number of WebSocket connections on your chat app at the same time.
Conversational ChannelA conversational channel is a place where users can converse. Examples include a website, real-time chat, Facebook Messenger, WhatsApp, Slack, Kik, etc.
DashboardA dashboard houses primary app data, permissions options, billing info, and usage analytics data collected through your chat app. It also provides moderation controls.
DatabaseA database is a storage center for information, traditionally defined as relational or non-relational (NoSQL). Databases read and write data from external sites or applications, providing users remote access over the internet.
Dedicated StackA dedicated stack is an independent physical or cloud server that is devoted to a single tenant. Many healthcare and financial organizations use dedicated stacks to isolate sensitive data from unauthorized users for security purposes.
DialogflowDialogflow is an AI system designed to understand user inputs such as text or speech and provide relevant information in response. Dialogflow can respond to users with text or synthetic speech to enhance the user experience.
Edge ComputingEdge computing is a strategy implemented by placing (or utilizing) physical servers in various locations. The closer a client is to the server, the faster the client will receive a response. Edge computing directly impacts bandwidth costs, download speeds, latency, and performance.
Emoticons and GifsCustom emojis are a fun way to bring more life and customizability to your apps. They're available in some of the most popular apps, such as Slack, Discord, and Twitch. However, iOS SDK doesn't provide straight forward support for custom emojis out of the box. Streamoji is a custom emoji rendering library for iOS. It supports GIF, images, and unicode. It loads from URLs or local assets. Caching is taken care of and performance is fast.
End-to-end Encryption (E2EE)End-to-end encryption is a communication system where only the communicating users can read messages sent and received within the encrypted channel.
Error CodeEvery API request that describes the error messages returns HTTP status codes.
EventAn event is an update sent to the client from the API to keep the client up to date. Examples of events are new messages, new user images, or a new member joining a channel.
Explainable AIExplainable AI is an AI service whose outputs can be explained, and all processes and machine learning are accessible to be analyzed.
Fan-OutFan-out is a messaging pattern where messages are broadcast in a one-to-many arrangement. A basic example of this pattern can be seen in the functionality of a Publish/Subscribe messaging system, as Pub/Sub implies the ability to route messages from a single sender to multiple receivers.
FAST APIFastAPI is an API framework written in Python for GET and POST requests. These requests follow OpenAPI convention and simplify the development process. JSON Web Tokens are pre-loaded in FastAPI and create unique user tokens based on UUID, email, and password.
Feed APIUse Feed APIs to outsource comprehensive feed features without having to manage data or storage internally.
File Transfer Protocol (FTP)FTP is the standard protocol between client and server. The client will send a request to the server using a specified URL. Clients make requests via browser or application and can have methods such as GET or POST and information within the body. The URI path defines where the server is located and sends all data associated with the request. Once the server receives the request, it gets a response with a status code.
FiltersUse filters when returning results with query endpoints. You can query using the custom fields you've defined on the object you are querying, as well as built-in fields.
FlagIf a user sees or receives an inappropriate message, they can flag that message. The chat moderator is then notified of the content that has been flagged for their review and can make a judgment on what action to take next based on the contents of the chat.
FlutterThe Flutter Chat Messaging SDK includes both a low-level SDK and reusable UI components bundled together in a simple sample app. Build a fully functioning Flutter mobile chat app with support for rich messages, reactions, threads, image uploads and videos.
Function as a Service (FaaS)Functions can be outsourced and added to production code by executing functionality at an edge server. Add FaaS as microservices or simple functions within microservices.
Gaming InterfaceA gaming interface allows users to interact with game functionality. Users can navigate through the game console and make selections or choices based on the options through the UI.
General Data Protection Regulation (GDPR)GDPR is a law maintained by the European Union to protect user-information stored electronically. The scope of GDPR extends to the transfer of data in or out of the EU as well.
GeocodingGeocoding (also known as forward geocoding to distinguish it from reverse geocoding) is the process of converting addresses (e.g. a house number, street name, zip code), into geographic coordinates (latitude and longitude).
Geolocation APIA Geolocation API is a communication interface between a client device or application (client-side), and an application or service (server-side) that identifies and returns information about the client’s geographical location.
GET RequestGET is a common method used in HTTP requests to retrieve data from a server.
HIPAAHealth Insurance Portability and Accountability Act (HIPAA) ensures the protection and confidentiality of protected health information (PHI).
HTPP/2HTTP/2 is the new version of HTTP (Hypertext Transfer Protocol), superseding HTTP/1.1 with several optimizations designed to improve the speed of web communications.
HTTPThe Hypertext Transfer Protocol is an application protocol for distributed, collaborative, hypermedia information systems that allow users to communicate data on the World Wide Web.
HTTP RequestAn HTTP request is a message sent by a client using a browser via mobile device or desktop. Submissions can contain methods such as GET or POST and information within the headers or body. The request routes to a specific server identified by the URL path.
HTTP ResponseAn HTTP response is returned by a server that contains information or data requested by the client. Responses will include a status code, depending on the type of validation of the request.
HTTP Status CodeAn HTTP status code includes a response based on the request made by the user. As the name suggests, status codes can offer insight into what may happen behind the scenes. For example, 200 status is ‘OK,’ however 401 states ‘Forbidden,’ indicating that the user’s credentials may not be correct.
HTTP StreamingHTTP Streaming is a push-style data transfer technique that allows a web server to continuously send data to a client over a single HTTP connection that remains open indefinitely.
In-app MessagingIn-app messaging is real-time messaging within an app or web application. In-app messaging allows users to communicate 1:1 for private chat and larger group chats with multiple users.
Infrastructure as a Service (IaaS)IaaS providers manage datacenter infrastructure, offering optimal scalability and financial flexibility. Developers only pay for the storage needed and never worry about performance as the company grows or changes, alleviating the hassle of managing physical servers or other data storage systems.
iOS/SwiftThe iOS Chat SDK is highly flexible, customizable and optimized for performance.
IP MessagingIP Messaging describes the general use of TCP/IP (the Internet protocol) to provide messaging capabilities to web and mobile applications.
JSON Web Token (JWT)A JSON Web Token is an encoded JSON object used for security and user verification. Payload information is only decrypted for verified users and stores a unique signature for each permitted user.
Language TranslationChat messages can be translated on-demand or automatically, this allows users speaking different languages on the same channel. The source language is inferred from the user language or detected automatically by analyzing its text.
LatencyLatency is the delay before a transfer of data begins following an instruction for its transfer.
LimitA limit is a parameter that sets a cap on the number of results that will return from an endpoint.
Live StreamLive Streaming is the ability for users to observe different forms of media in real-time. As a source uploads content, users simultaneously receive packets of information without saving vast amounts of data. They can watch live videos or listen to music seamlessly without overloading local data storage.
MemberA member is a user role associated with a specific channel, typically granted more permissions than a non-member user.
Message ReactionsMessage reactions allow you to “react” to specific messages within a chat. Common examples are likes, comments, loves, etc. Reactions can be customized so that you are able to use any type of reaction your application requires.
MessagesA message is text posted by one user into a channel for other users to view. Messages can have attachments (i.e., audio, video, image, and text).
Messaging APIMessaging API refers to any service that enables developers to implement messaging technologies in an application via a single programmable interface.
MicroserviceA microservice is a special form of SOA in which apps are built in terms of distinct modular services, each responsible for a specific function.
Mobile Operating SystemA mobile operating system is any system designed to run on a mobile device. Mobile operating systems are specific to the type of software that runs on each device, therefore need to be configured separately.
ModerationModeration is the ability to oversee and mitigate unwanted or aggressive content. Automated systems like Chatbots can automatically detect unwanted language and censor the specific content without completely removing the message.
Monthly Active Users (MAU)MAU is often considered a billing metric that reflects the total number of users who have connected to your chat apps over the month.
Multi-Region SupportChat infrastructure that offers customer support on a regional basis. Ex. us-east-1, ap-northeast-1, ap-southeast-1, and eu-west-1.
Multi-TenancyMulti-tenancy is the method of storing and retrieving user information simultaneously on a single server. User groups, otherwise known as “tenants,” are separated logically and have confined access to any other tenants.
MuteAny user should be allowed to mute another user. This means that they will still receive messages from them, but will not be notified or see them. The power rests with the user, and they can view muted messages when and if they so choose.
Non-Relational DatabaseNon-relational databases do not organize information by tables. These databases can use various indexing methods and can be a faster alternative since queries don’t require referencing multiple tables to find information. Data can be arranged “side-by-side” and allow for organizational flexibility.
Open Graph (OG) ProtocolOpen Graph protocol facilitates developer simplicity by providing a universal protocol for cross-platform use. We can define the title, type, image, and URL with metadata, thus creating a graph object based on the information provided. Each entity within the page can function the same way, significantly minimizing repetition.
OptionsIn addition to filtering and sorting, options are another tool to organize and filter data with query channels. Examples include watching the channel and limiting the number of channels or messages returned.
OwnerTraditional default chat configuration provides elevated permissions to the owner of a channel, message, or user. For example, you can delete your message or update your name or profile.
PCI DSS ComplianceThe Payment Card Industry Data Security Standard (PCI DSS) is a strict compliance measure any company that accepts, processes, stores, or transmits cardholder data (CHD) must meet.
Platform as a Service (PaaS)A digital environment that reads and executes code. As the platform runs the code, an interface will display the returned information or response.
POST RequestPOST is a common method used in HTTP requests to write data to a server when submitting forms or uploading large files.
PostgreSQLPostgres is a relational database that can store, access, and manipulate object data. You can reference objects in Postgres by using queries, as well as data relationships. Relationships are defined by a foreign ID that points directly to the ID of another object.
Pre-Active ModerationPre-active moderation prevents harmful content from ever reaching or impacting other users; technology rather than human moderators accomplish this. Platforms can employ blocklists to identify offensive language in message drafts and stop them from being sent. AI-based, real-time pre-active moderation checks messages for harmful content and asks the sender to change or remove the harmful content before sending the message. This type of moderation prevents unsavory interactions but can disrupt a user's experience if not implemented correctly. Pre-active chat moderation is difficult to implement with manual workflows due to the real-time nature of chat. This method of moderation is typically automated and can follow two approaches.
Privacy Shield Certification (PSC)The Department of Commerce oversees PSC and affirms compliance with Privacy Shield Standards annually.
Private ChannelA private channel is only visible to its participants and will decrease channel synchronization time at client start.
Private CloudA private cloud is a separation of organizations using cloud computing across one or multiple servers. Build the cloud to access specific services or information that authorized users can only view. Within the organization, you can make a further logical separation for sensitive information.
Programming AlgorithmA programming algorithm is a set of directions for a specific function within computing. Optimize algorithm outputs for performance based on specified inputs.
Programming FrameworkA programming framework is a flexible system that allows for software development in specific programming languages. Frameworks come with base functionality that can be added to or modified to meet the application’s needs.
Programming LanguageA programming language is nearly identical to a spoken language. In programming, language is a way to arrange text to develop software. Various languages use different syntax for methods, functions, and data types. Many programming languages are derived from older or outdated versions, so there can also be similarities between languages.
Protected Health Information (PHI)PHI is enforced under HIPAA by the Department of Public Health. It identifies certain patient information as protected by law and to only be viewed by authorized parties during medical consultations.
Public ChannelChannels are used for conversations between users. A public channel is seen and can be joined by non-members. Additionally, the public channel, along with its members and messages, is visible to every client endpoint in a given service SID. This means that synchronizing channels lists on client start may take more time when you have a large number of public channels.
Publish/Subscribe (Pub/Sub)Publish-Subscribe is a software design pattern that describes the flow of messages between applications, devices, or services in terms of a publisher-to-subscriber relationship.
Push NotificationUse push notifications to alert users that they have new or updated information. Traditionally, users can customize their push notification settings to alert specific events like messages or status updates. Once data is updated, open WebSockets will automatically push a notification to the user without needing to manually request updates from the server.
QueryA query is a request for data or information from a database table or combination of tables.
Random Access Memory (RAM)RAM is live or “working” data and can be accessed immediately from any physical location within your computer. The information can be read or written in any order and “accessed randomly.”
React NativeThe React Native Chat SDK makes it easy to build in-app chat like iMessage, Telegram or Slack. Stream's React Native SDK is feature packed with rich messages (URL previews, user mentions, chat commands), reactions, threading, image & file uploading, and videos.
Reactive ModerationReactive moderation responds to harmful content after users share it on a platform. This method typically relies on human moderators to monitor chat channels, and user reports to be actioned by moderators or administrators of the forum. Reactive moderation can also include user-to-user moderation, empowering users to prevent or remove inappropriate content created by other users. For instance, users can mute others who are spamming their inboxes, or they can flag a message for administrative review that they believe breaks the community guidelines.
Real-Time ChatReal-time chat is a messaging service for applications that allow users to communicate in real-time.
Real-Time ComputingReal-time data is information sent live from one source to another. An event will trigger a response and must guarantee that response within a specified timeframe, otherwise known as a “deadline.”
Real-Time Messaging ProtocolRTMP or Real Time Messaging Protocol is a proprietary system that is utilized for streaming live video feeds to devices running Flash.
RedisRedis is an in-memory database that parses Rapid Access Memory (RAM) for faster response times. By caching data in RAM, data is available instantaneously instead of disk storage, where information needs to be retrieved first.
Regional SettingThe regional setting indicates the location of your chat app on the AWS infrastructure. Selecting the correct place for your app is critical; otherwise you might experience latency issues. You should also align your customer base with your regional setting.
Relational DatabaseA relational database stores object-based information and uses associations to pass data along.
Representational State Transfer (REST)REST is a formatting convention used for reading, writing, and updating objects. Developers that follow this convention refer to routes “RESTful.” Developers use this as a way to simplify readability when multiple individuals are writing to the same codebase.
RocksDBRocksDB is a high-performance database using key-value pairs for faster data writing and storage. RocksDB focuses on applications that require low-latency access to data, such as real-time messaging queues or graph queries.
RoleRoles determine the permissions of end-users and staff members at the application level. Examples of roles are Admin, Guest, User, Anonymous, etc.
ServerA server is a physical or cloud storage system for functionality for other devices. The term comes from the idea that information is being “served” to its client. The server will receive some requests from the client and return a response.
Serverless ComputingOutsourced computing services provide developers with production-ready tools to optimize applications. These services include Software as a Service (SaaS), Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Functions as a Service (FaaS). Cloud services can provide engineers with a fast, flexible alternative to in-house development.
ShadowbanInstead of a default ban, you can shadowban users from a channel, set of channels, or an entire app. When a user is shadowbanned, they will still be allowed to post messages, but any message sent during the shadowban will only be visible to the message's author and invisible to other users of the app.
SignalRMicrosoft ASP.NET developed SignalR, a software library that utilizes traditional HTTP connections that allow real-time connectivity between server and clients.
Silent MessageWhen you want to send a system, administrative, or transactional message, you may not always want to instantly alert the user or change the unread message count on a conversation. Silent Messages can be sent to a recipient without an “unread” notification appearing on their end.
Slash CommandsSlash commands get their name due to the “slash” added before the command is used. Slash commands are associated with a web service and designed to make an HTTP request to the service provider.
Smart NotificationSmart Notifications is a relatively new concept used to describe the various techniques designed to make real-time, push-style messaging (such as Push Notifications) more relevant, useful, and appropriate for individual users.
SMS (Short Message Service)SMS (Short Message Service) is a way to send short, 160-character text messages from one mobile device to another over the cellular telephone network.
Social MessagingSocial messaging is an application or platform that allows users to chat independently or in groups. You can utilize social messaging as chat messaging or feeds delivered to clients in real-time.
Software as a Service (SaaS)SaaS is an outsourced option for developers who want to use services like Chat or Feeds but may not have the resources to build the functionality themselves. SaaS is offered on a term basis, and subscribers commonly have several plan options depending on what features they’re looking for. SaaS is a lightweight option as opposed to storing data on servers managed by the SaaS provider. SaaS can be an excellent solution for developers looking to provide their users a feature-rich experience without extending time to market.
Software Development Kit (SDK)SDKs are created for developers to quickly and easily integrate services into their existing applications. SDKs are custom-built and offered for specific platforms and frameworks. These kits can consist of infrastructure services as well as front-end kits for UI development.
SortSort is a parameter you can apply to queries. The sort function increases query options and flexibility. You can sort by field and direction or sort using multiple options. You can sort by parameters like last_updated or unread_count.
SupportSupport is typically a team of engineers focused on customer success and helping with any integration blockers or questions you may have.
TeamsTeams are associated with a user or channel using the multi-tenancy feature. In a B2B use case, each team would typically be composed of customers.
TelemedicineTelemedicine is the method of performing healthcare services electronically. Common platforms for telemedicine include mobile applications and websites that offer chat or video appointments with healthcare professionals.
ThreadA thread is a secondary or alternative conversation that stems from a comment within a greater conversation. Comments or posts in a conversation can branch off by creating a new thread, and users can join in for further discussion.
TokenTokens authenticate users/the client when a user signs onto a chat app. These tokens are created server-side.
Two-factor authentication (multi-factor)Multi-factor authentication is a security protocol requiring users to verify their identity by using two or more devices registered to that user.
Typing IndicatorTyping indicators allow you to show to users who are currently typing in the channel. This feature can be switched on/off on a channel-type basis using the CLI or directly from the Dashboard.
URL EnrichmentWhen enabled, messages containing URLs will be enriched automatically with image and text related to the message.
URL UnfurlingURL unfurling is the complete breakdown of a URL into independent segments. You can repurpose these segments as Open Graph objects for simplified development techniques.
UserUsers are unique visitors to your chat app.
User EngagementUser engagement is the measurement of how a user spends their time on a site. Improved user engagement will keep users engaged longer and increase time spent on the site or application.
User Experience (UX)User experience is determined by the design and logic of an app. User experience can be leveraged to drive conversions or point users towards a specific page.
User Generated Conent (UGC)User-generated content (also known as UGC or consumer-generated content) is original, brand-specific content created by customers and published on social media or other channels. UGC comes in many forms, including images, videos, reviews, a testimonial, or even a podcast.
User PermissionsThe five default channel types (commerce, gaming, messaging, livestream, and team) come with different default permission policies preconfigured to best fit one use-case. For example, one of the default permission policies for the 'messaging' channel type "only allows users with a moderator or admin role to ban another user".
User PresenceUser presence allows you to show when a user was last active and if they are online right now. Whenever you read a user the data will look like this: The online field indicates if the user is online. The status field stores text indicating the current user status.
WatcherA watcher is a user who subscribes to updates on a channel (new messages, etc.). Being a watcher doesn't imply membership; for example, a non-member can watch a Livestream channel-type and is considered a watcher.
WebhookA webhook is a service that can be built into an application to run when triggered by an event or update in real-time. These services run behind the scenes and call external applications built, maintained, and operated by third-party providers.
WebsocketWebsockets facilitate ongoing communication between a client and server without requiring users to request updates. This communication protocol uses event-driven notifications and allows users to communicate in real-time.
XMPPXMPP (Extensible Messaging and Presence Protocol) is an open-source, decentralized messaging protocol born from Jabber, an early real-time chat protocol.