State of the World (SOW)
AMPS State of the World (SOW) allows you to automatically keep and query the latest information about a topic on the AMPS server, without building a separate database. Using SOW lets you build impressively high-performance applications that provide rich experiences to users. The AMPS JavaScript client lets you query SOW topics and subscribe to changes with ease.
Performing SOW Queries
To begin, we will look at a simple example of issuing a SOW query.
const onMessage = message => {
switch (message.header.command()) {
case 'group_begin':
console.log('--- Begin SOW Results ---');
break;
case 'sow':
console.log(message.data);
break;
case 'group_end':
console.log('--- End SOW Results ---');
break;
}
};
const queryId = await client.sow(
onMessage, // Message handler
'orders', // SOW Topic
'/symbol="ROL"' // Filter
);
In the example above, we invoke Client.sow()
to initiate a SOW query
on the orders
topic, for all entries that have a symbol of 'ROL'
.
As usual, the Client.sow()
method returns a Promise
object that
resolves with the query ID.
As the query executes, the message handler function is invoked for each
matching entry in the topic. Messages containing the data of matching
entries have a Command
of value sow
, so as those arrive, we write
them to the console.