General Topics
📄️ What software/hardware is required to run AMPS?
AMPS will run on any x86 64-bit Linux server with a 2.6 kernel (or newer). AMPS is highly concurrent and tuned to take advantage of modern x86 CPU features.
📄️ Content filtering sounds cool, how does it work?
Content filtering is a message filtering capability that provides a high degree of selectivity for messages. A subscription in AMPS consists of a topic and an optional content filter. A content filter is an expression that combines an XPath Locator with a SQL-style predicate so that AMPS can evaluate individual elements of the message content to determine if a message matches the subscription. As messages enter AMPS, they get filtered by topic and then the messages are matched against their optional content filters. Content filtering allows an application to be very specific about what content it will receive.
📄️ Is AMPS a point-to-point messaging product?
AMPS has been designed to offer a high degree of message selectivity using topic and content filtering. When using content filters an application can specify the exact messages that it desires and thus a point to point connection makes the most sense. Multicast style messaging products are typically useful for scenarios where many applications want to get the same exact data. However, in scenarios where message selectivity is desirable then multicast can be problematic as applications receive too much data that they read from the network and discard. The extra volume of data and discarding of data can lead to latency inside the application. AMPS was designed to only deliver the messages desired and thus eliminate wasted application cycles dedicated to discarding messages.
📄️ What database does AMPS use?
All of the database-like features of AMPS are built from the ground up for AMPS. This includes content filtering, SOW topics, views, aggregates, topic joins, historical replay, and so on. The implementation is specifically designed and tuned for the way AMPS works and only provides the functionality used by AMPS. Because the functionality is written specifically for AMPS, this approach also improves performance and reduces resource usage.
📄️ Can I publish and subscribe at the same time?
Yes. The AMPS Client allows concurrent publishes and subscriptions from either a single thread or from multiple threads.
📄️ What CRC32 implementation does AMPS use?
The AMPS CRC32() function is CRC32C with the following parameters:
📄️ How does AMPS support UTF-8 and Unicode?
AMPS supports the most common uses of Unicode when represented as UTF-8 in messages and topic names. There are some considerations to keep in mind when using UTF-8 with AMPS: