History Patch
Nstream provides a ‘History’ patch that greatly facilitates tracking previous agent state in a time series history lane.
This guide demonstrates how to create and maintain a MapLane
of events ordered by timestamp.
Dependencies
Gradle
implementation 'io.nstream:nstream-adapter-common:4.14.22'
Maven
<dependency>
<groupId>io.nstream</groupId>
<artifactId>nstream-adapter-common</artifactId>
<version>4.14.22</version>
<type>module</type> <!-- Remove or comment this line for non-modular projects -->
</dependency>
Config
The HistoryPatch
agent contains a MapLane
named history
that will store events by an extracted timestamp.
In most cases, history lanes can be implemented wholly with configuration in the server.recon
file.
This involves adding HistoryPatch
to the relevant nodes and setting some simple parameters.
Simply define a node that includes the HistoryPatch
agent:
# server.recon
...
space: @fabric {
@plane(class:"nstream.adapter.runtime.AppPlane")
# Domain Agents
@node {
pattern: "/vehicle/:id"
@agent(class: "nstream.adapter.common.patches.HistoryPatch") {
maxHistorySize: 10
extractEpochMillisFromEvent: $timestamp
}
}
}
History Patch Config Options
Name | Description | Required | Default | Example |
---|---|---|---|---|
maxHistorySize |
Maximum number of records in history lane | true | Max Integer | 10 |
extractEpochMillisFromEvent |
Value selector of timestamp | false | Current agent time | $timestamp |
extractValueFromEvent |
Value selector of event to store | false | Entire event | $status |
Nstream is licensed under the Redis Source Available License 2.0 (RSALv2).