Resource | Description |
Apache Cassandra | All data persisted by ICE Server is stored in Apache Cassandra, a distributed, wide column store, NoSQL database management system designed to handle large amounts of data across severs and data center, providing high availability with no single point of failure. |
CassKop Cassandra Operator | Provides Kubernetes-level administration and management over Apache Cassandra (database) resources running inside the cluster. |
Client Bridge | Client bridge terminates ICE Desktop and ICE Mobile WebSocket connections to the ICE Server, placing messages received from clients on the platform Kafka message topic (for processing by Platform Services). Forwards relevant messages from the platform Kafka message bus to attached clients. |
Elasticsearch | Elasticsearch is a distributed search and analytics engine providing powerful, lightning-fast search capabilities. Used by ICE Server to power people and channel search functions in the application. Be aware that the Kubernetes EFK monitoring and analysis tools ships with its own Elasticsearch that operates independently of ICE Server’s. |
Apache Kafka | A stream-processing platform providing a unified, high-throughput, low-latency platform for handling real-time data feeds. Services inside of ICE Server communicate with one another using Kafka message topics. |
Strimzi Kafka Operator | Provides Kubernetes-level administration and management over Apache Kafka (messaging) resources running inside the cluster. |
Model Manager | Responsible for establishing required keyspaces, tables, columns and topics within Cassandra and Kafka. Manages database table versioning and migrating data during in-place ICE Server software updates. |
Platform Services | Primary message processing and application business logic. Platform Services receives messages from a Kafka message topic, processes them (which may include performing database lookups or writes), and places a response message back on the topic. |
REST Bridge | A REST-style facade over the system. Takes incoming HTTP requests, converts them to Kafka messages destined for Platform Services, and converts the resulting response message into an HTTP response. |
Server Bridge | Similar to Client Bridge, Server Bridge terminates WebSocket connections established by ancillary server components (like ICE Telephony, ICE Static Reflectors and ICE Patch Servers). |
Apache Zookeeper | Apache Zookeeper is a centralized service to maintain naming and configuration data and to provide flexible and robust synchronization within distributed systems. Zookeeper keeps track of status of the Kafka cluster nodes and it also keeps track of Kafka topics, partitions etc, and keeps them in sync. |