Skip to content
This repository was archived by the owner on Sep 2, 2025. It is now read-only.

Take advantage of Node's built-in streaming backpressure - #77

Open
erikap wants to merge 3 commits into
TREEcg:mainfrom
redpencilio:feature/use-streaming-backpressure
Open

Take advantage of Node's built-in streaming backpressure#77
erikap wants to merge 3 commits into
TREEcg:mainfrom
redpencilio:feature/use-streaming-backpressure

Conversation

@erikap

@erikap erikap commented Mar 4, 2024

Copy link
Copy Markdown

This PR contains an attempt to take advantage of Node's built-in backpressure in streams (i.e. buffering in case of a slower consumer) instead of trying to manage it ourselves. It also includes an exponential backoff mechanism to retry failing requests.

This PR should not be merged as such. We've removed some code (like for example the paused flag) which may be considered a breaking change (although it looks like an internal to us) and didn't extensively test all different kinds of representations. Given that a new implementation is being worked on in https://github.com/TREEcg/ldes-client, it does not seem appropriate to us to further clean up and elaborate on this PR, but we wanted to indicate what our issues have been with this client so that they can possibly be taken into account in the new implementation.

Co-author: @madnifcent

@pietercolpaert

Copy link
Copy Markdown
Member

@ajuvercr Can you take a look to this at your earliest convenience and analyse whether there’s backpressure implemented in the new ldes-client?

@erikap Is the code in the PR functional and would you want us to release the last package of the deprecated event-stream-client with these changes?

@ajuvercr

Copy link
Copy Markdown

The new client certainly has backpressure, it uses the mdn streams interface and pauses everything after a member is found and resumes when a new member is expected.

If you need any other features in the new client that prevents you from changing, please let us know! @erikap @madnificent

Comment on lines +292 to +298
* TODO: There is an issue with the TREE metadata extractor
* changing the casing of the LDES IRI e.g.:
* https://semiceu.github.io/LinkedDataEventStreams/example.ttl#eventstream
* gets changed to:
* https://semiceu.github.io/linkeddataeventstreams/example.ttl#eventstream
* which prevents tree:views to get booked
*/

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yikes

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants