Create txn stream crate in this repo #21
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Clean up
transaction_stream.rs' (renamed fromgrpc_stream.rs`) so we can make a crate of it, which will be used in the SDK.TransactionStream
transaction_stream.rsdefines a structTransactionStreamthat has these methods:init_streamestablishes a connection with the grpc streamget_next_transaction_batchfetches the next transaction response from grpcis_end_of_streamsignals if you've reached the end of the streamreconnect_to_grpcwill attempt to reconnect with grpc if there's an error with the streamreconnect_to_grpc_with_retriesis a wrapper aroundreconnect_to_grpcthat adds retry logicHow processors use TransactionStream
In
worker.rs,fetch_transactions_from_transaction_streamwill initialize and manage theTransactionStream, filtering transactions, sending the transactions to channel, handle reconnection if necessary.Testing
cargo run --release -- -c config.yamlwith and without
starting_versionset