1.0.16 • Published 23 days ago

@kryptokrauts/event-processor-node-lib v1.0.16

Weekly downloads
-
License
MIT
Repository
-
Last release
23 days ago

event-processor-node library

This library provides the following capabilities

  • establish communication to Kafka broker network
    • read last message of defined output topic to get last successfully processed blocknum
    • if topic is empty (initial), use env variable
  • connect and listen to XPR Network based on blockmatic/antelope-ship-reader
    • start reading at resolved blocknum above
    • listening on user defined contract actions as well as forks
    • provide a handleAction callback to implement message transformation
    • transformed messages are automatically sent to the configured Kafka topic with a dedicated header <message_prefix_header>.<action_name>

In case of expected shutdown, a SIGTERM/SIGINT listener generates a dedicated RestInfo message on the output topic with the last processed blocknum from the ship reader. This allows a reset at this point in case no relevant block data was written to the output topic and thus omits the necessity of reading irrelevant / empty blocks again on restart (in case of bigger gaps).

Using this mechanism also allows a manual reset to a certain blocknum by manually creating such a ResetInfo message within the output topic.

In case of forks, the ship reader stops and creates a ResetInfo with the last irreversible block as starting point. All subsequent processes can also react on this message.

Configuration

Refer to .env_template.

Sample usage

The example implementation atomicmarket.ts show how the necessary configuration is provided

  • table_rows_whitelist events on contract and contract tables
  • actions_whitelist contract actions The handleAction callback is called, whenever one of the whitelisted actions occur The wrapper is configured and started as follows
const wrapper: ShipReaderWrapper = new ShipReaderWrapper({
	actions_whitelist: actions_whitelist,
	message_header_prefix: 'atomicmarket',
	table_rows_whitelist: table_rows_whitelist,
	action_handler: handleAction,
	only_irreversible_blocks: false
});
wrapper.startProcessing();

The Dockerfile contains the build library and entrypoint for the example.

1.0.16

23 days ago

1.0.15

23 days ago

1.0.11

1 month ago

1.0.14

1 month ago

1.0.13

1 month ago

1.0.12

1 month ago

1.0.10

1 month ago

1.0.9

2 months ago

1.0.8

2 months ago

1.0.7

2 months ago

1.0.6

2 months ago

1.0.5

2 months ago

1.0.4

2 months ago

1.0.3

2 months ago

1.0.2

3 months ago

1.0.1

4 months ago

1.0.0

5 months ago