A Next-Generation Database for a Next-Generation System
Mutualink’s hardware and software empower agencies worldwide to interoperate and communicate. The company connects two-way radio, phone, video, text, and data among thousands of global customers on its network. As Mutualink embarked on the next generational design of its popular emergency communications solution, a primary goal was to build a system that would allow the company to increase the scale of its deployments by a factor of hundreds, if not thousands, of users.
Achieving more efficient, self-service deployment has meant leveraging modern development and deployment practices such as microservices to achieve scalability and faster time to market. It’s also meant prioritizing the system’s ability to provide instantaneous data consistency and consolidation across an ever-growing network of geographically distributed applications. “At any point in time, our client programs might need to spontaneously deliver traffic to a different data center in a different part of the country,” said Kurmas. “In an emergency situation, we can’t tell our customers ‘sorry, you have to log out and log back in again because your mobile call moved to another data center’ so we need to ensure seamless rerouting in real time without data loss or conflict.” These next-generation system requirements translated into an urgent need to find a database that could overcome the inherent challenges of the stateless and highly distributed application environment that comes with microservices.
Redis Enterprise Gets to the Heart of It
Redis Enterprise is the core of the central junction point operations for the next-generation system that Mutualink is building. This central junction point, referred to internally as the edge server, is the clearinghouse where all normalized multi-media communications among Mutualink’s customers interconnect. In this role, Redis Enterprise will act as a real-time, high-speed data store, performing many critical functions, including:
- Storage of the directory (i.e., living model) of the network that Mutualink publishes to its clients
- Knowledge management of all active conversations taking place so that Mutualink can track participation and make fine-grained authorization decisions in real time regarding who is allowed to take part in ongoing collaborations
- Multi-media event synchronization, and event distribution to topics or queues—either locally or between different geographic data centers, depending upon the event’s destination
- High-performing search across Mutualink’s directory of users with robust suggestions based on phonetic well as a direct spell to make it easy for customers to identify and engage other agencies during an emergency response quickly
To accomplish these functions, Mutualink takes advantage of Redis Enterprise’s many flexible data structures such as lists, strings, and hashes, as well as specialized features such as task queues, atomic calendar, and the RediSearch text search and secondary indexing engine.
Additionally, the development team intends to bring Redis’ newest data structure type, Redis Streams, along with Redis’ powerful geospatial data capabilities into the new system’s design. “We view location information as a key application asset, and so Redis’ geo-spatial commands are something we anticipate using strongly in the very near future,” said Kurmas. “And the efficiency of Streams definitely speaks to allocation of work in a microservices model.”