Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.4.0 #11

Merged
merged 21 commits into from
Apr 25, 2024
Merged

v0.4.0 #11

merged 21 commits into from
Apr 25, 2024

Conversation

JMTamayo
Copy link
Member

Important comments for reviewing the PR:

  1. The project was refactored as a WORKSPACE. Therefore, most of the changes correspond to changes in the location of the modules within the new folder structure. This change seeks to prepare the project for the future in case you want to extend the project, for example, writing the core in Rust and implementing it in other languages such as python.
  2. A new message consumption methodology was implemented based on https://github.com/elpablete/refactored-computing-machine.
  3. This PR does not correspond to a version to be published because the implementation of an examples module and improvements to the documentation are still in process.

Thanks for your review 👍

JMTamayo and others added 13 commits April 23, 2024 21:17
… as packages.

Removed the RedsumerClient structure and implemented the get_redis_client function to get the Redis client.
…as packages.

Implementation of new types: RedsumerResult, RedsumerError and Id.
FromRedisValueImplHandler was changed to FromRedisValueHandler.
The stream_information.rs module was removed from the project
…re as packages.

StreamInfo implementation was removed.
The produce_from_items and produce_from_map methods were replaced by the produce method
…re as packages.

StreamConsumersInfo implementation was removed.
StreamInfo implementation was removed.
RedsumerConsumerOptions was removed. The consumer configuration parameters were implemented directly in RedsumerConsumer.
Validate_pending_message_ownership method was replaced by is_still_mine in RedsumerConsumer.
The acknowledge method was replaced by ack in RedsumerConsumer (Breaking change).
The consume method was refactored in RedsumerConsumer in order to implement a new consumption methodology that allows scalability in distributed systems. To understand this new implementation in detail, take a look at the project https://github.com/elpablete/refactored-computing-machine.
Library modules reorganization.
Typos in CI.yml.
Library modules reorganization.
Copy link
Member

@elpablete elpablete left a comment

Choose a reason for hiding this comment

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

Why not use xautoclaim, and instead do the double round trip to the server with xpending and xclaim with the extra "is mine" check? Particularly because the check for ownership in the server should be done as near as possible to the moment of actual processing.

@JMTamayo
Copy link
Member Author

Why not use xautoclaim, and instead do the double round trip to the server with xpending and xclaim with the extra "is mine" check? Particularly because the check for ownership in the server should be done as near as possible to the moment of actual processing.

XAUTOCLAIM is not implemented in redis v0.25.3, so, I implemented XPENDING and XCLAIM to claim pending messages from another consumers according to the consumer configuration.

https://docs.rs/redis/latest/redis/

JMTamayo and others added 8 commits April 24, 2024 14:13
Improvement in the description of examples in project documentation
Improvement in the description of examples in project documentation: …
… XPENDING + XCLAIM removing the condition that previously existed to only claim messages that were in the PEL of other consumers.
@JMTamayo
Copy link
Member Author

Why not use xautoclaim, and instead do the double round trip to the server with xpending and xclaim with the extra "is mine" check? Particularly because the check for ownership in the server should be done as near as possible to the moment of actual processing.

The claim_pending_messages function was modified to implement the combination of XPENDING + XCLAIM without the "it is not mine" validation that previously existed. The objective is to minimize the time between the XPENDING response and the request with XCLAIM as much as possible.

Currently, XAUTOCLAIM is not supported by redis-rs, however, I will manage its implementation with the project contributors. When this development is ready, we proceed to implement it in redsumer.

Please take a look at last changes in this PR. Thanks.

@JMTamayo JMTamayo changed the title v0.4.0-beta.1 v0.4.0 Apr 25, 2024
@JMTamayo JMTamayo merged commit f60e031 into enerBit:main Apr 25, 2024
1 check passed
JMTamayo added a commit that referenced this pull request Oct 11, 2024
Fixing CI.yaml: remove blank lines
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants