MongooseIM

Product description

NineFX resells MongooseIM, Erlang Solutions’ robust and efficient chat platform aimed at large installations. It supports FIPS 140-2 encryption, ideal for deployment in the Defense and Federal space where certified cryptography matters. Designed for enterprise, it is fault-tolerant, can utilise the resources of multiple clustered machines, and easily scales for more capacity by simply adding a box or virtual machine. MongooseIM can accept client sessions over vanilla XMPP, REST API and SSE, as well as Websockets, and BOSH (HTTP long-polling). The MongooseIM platform includes several server-side (backend) and client-side (frontend) components. A test suite, metrics, a load testing platform, and a monitoring server are available.

Scalable

The MongooseIM platform is designed to build high-performance instant messaging systems. It is aimed at large, complex enterprise level projects where real-time communication is critical for business success. Built around proven technologies XMPP/Jabber, the MongooseIM platform provides communication for millions of online users in high-growth sectors such as social media, gaming, and telecommunications. It is reliable, fault-tolerant, can utilise the resources of multiple clustered machines, and can scale easily when more capacity is needed.

Secure

MongooseIM supports encryption using Transport Layer Security (TLS) of XMPP (TCP), Websockets, BOSH (long-polling) and REST connections. It allows TLS encryption between cluster nodes and to backend databases. MongooseIM ships with HTTPS/REST, JSON Web Tokens (JWT) and Lightweight Directory Access Protocol (LDAP) authentication backends. We can develop custom authentications modules via MongooseIM’s plugin support.

Simple

The MongooseIM messaging platform significantly lowers the pain of integration by making it easier and faster. By offering a REST API (simple, modern and popular with developers) for both backend integration and client/server development, it lowers the barriers of entry for developers and allows the addition of innovative real-time, social features to existing apps. Globally, the MongooseIM messaging platform enables higher acquisition, retention, and engagement, by leveraging high-density, real-time network effects.

Features and supported standards

  • XMPP Core: RFC 3920, RFC 6120
  • XMPP Instant Messaging and Presence: RFC 3921, RFC 6121
  • Client connections:
    • over TCP (with TLS/STARTTLS available) as defined in RFC 6120
    • over WebsSockets as defined in RFC 7395
    • over HTTP(S) long-polling (BOSH) as defined in XEP-0124 and XEP-0206
    • REST API
  • Server/backend connections:
    • REST API
  • Configurable database backends:
  • Transient:
    • Mnesia
    • Redis
  • Persistent:
    • RDBMS: MySQL, PostgreSQL, generic ODBC
    • NOSQL: Riak KV, Cassandra
  • Integration with third-party services
    • Amazon Simple Notification Service

Supported XEPs

XEP Number Name Module
0004 Data Forms
0012 Last Activity mod_last
0016 Privacy Lists mod_privacy
0018 Invisible Presence
0022 Message Events mod_offline
0023 Message Expiration mod_offline
0030 Service Discovery mod_disco
0045 Multi-User Chat mod_muc
0049 Private XML Storage mod_private
0050 Ad-Hoc Commands mod_adhoc
0054 vcard-temp mod_vcard
0055 Jabber Search mod_vcard
0059 Result Set Management
0060 Publish-Subscribe mod_pubsub
0068 Field Standardization for Data Forms
0073 Basic IM Protocol Suite
0077 In-Band Registration mod_register
0078 Non-SASL Authentication
0079 Advanced Message Processing mod_amp (partial support)
0082 XMPP Date and Time Profiles
0085 Chat State Notifications
0086 Error Condition Mappings
0106 JID Escaping
0114 Jabber Component Protocol ejabberd_service
0115 Entity Capabilities mod_caps
0124 Bidirectional-streams Over Synchronous HTTP (BOSH) mod_bosh
0126 Invisibility mod_privacy
0138 Stream Compression
0153 vCard-Based Avatars mod_vcard
0157 Contact Addresses for XMPP Services mod_disco
0160 Best Practices for Handling Offline Messages mod_offline
0163 Personal Eventing Protocol mod_pubsub
0170 Recommended Order of Stream Feature Negotiation
0175 Best Practices for Use of SASL ANONYMOUS
0185 Dialback Key Generation and Validation
0191 Blocking Command mod_blocking
0198 Stream Management mod_stream_management
0199 XMPP Ping mod_ping
0202 Entity Time
0203 Delayed Delivery
0206 XMPP Over BOSH mod_bosh
0237 Roster Versioning mod_roster
0270 XMPP Advanced Server 2010
0279 Server IP Check mod_sic
0280 Message Carbons mod_carboncopy
0313 Message Archive Management mod_mam
0352 Client State Indication mod_csi
0357 Push Notifications mod_push
0363 HTTP File Upload mod_http_upload
0375 XMPP Advanced Server 2017
0384 OMEMO Encryption

Supported Open Extensions

Name Module
MUC Light mod_muc_light
Token-based reconnection mod_auth_token, mod_keystore