-
Notifications
You must be signed in to change notification settings - Fork 14
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
Initial implementation of up-streamer-rust
#8
Initial implementation of up-streamer-rust
#8
Conversation
08fab3d
to
3c7a8a7
Compare
up-streamer-rust
- UTransport
thread-safe versionup-streamer-rust
- UTransport
thread-safe version - with worker task pools
87f9926
to
829d78a
Compare
up-streamer-rust
- UTransport
thread-safe version - with worker task poolsup-streamer-rust
up-streamer-rust
up-streamer-rust
829d78a
to
5a8e33e
Compare
b611978
to
5ed0a2c
Compare
5ed0a2c
to
2691e31
Compare
0e850f9
to
3d15678
Compare
Hi @sophokles73, @AnotherDaniel, @stevenhartley, @Mallets, @evshary -- Bringing the initial version out of draft. Ready for some feedback 🙂 |
.await; | ||
assert!(add_forwarding_rule_res.is_ok()); | ||
|
||
// adding remote to local routing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm thinking whether having an API to add both routing is a better idea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps?
@stevenhartley -- do you see a use-case in which we're only wanting uni-directional routing?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No not that i can think of right now.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So then replacing the currently uni-directional API for add_forwarding_rule()
with a bi-directional approach is the right thing to do? Seems that way if no desire for uni-directional hookup.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hey @stevenhartley, bumping this now that I have a bit of bandwidth to perform some revisions. WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I heard back from @stevenhartley that we should be able to use a single add_forwarding_rule()
to connect both directions. Tracking in #14.
example-utils/integration-test-utils/src/integration_test_utils.rs
Outdated
Show resolved
Hide resolved
example-utils/integration-test-utils/src/integration_test_utils.rs
Outdated
Show resolved
Hide resolved
example-utils/integration-test-utils/src/integration_test_utils.rs
Outdated
Show resolved
Hide resolved
example-utils/integration-test-utils/src/integration_test_utils.rs
Outdated
Show resolved
Hide resolved
example-utils/integration-test-utils/src/integration_test_utils.rs
Outdated
Show resolved
Hide resolved
15bb6fb
to
ec17b99
Compare
Started to simplify this a bit.
Yeah, I agree that this would work, did this part so far. |
So, I think some of this complexity is inevitable. Given that, I tried to more clearly divide the responsibility for managing the TransportForwarders and ForwardingListeners. Greatly looking forward to your feedback 🙂 |
e7843ec
to
8400294
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@PLeVasseur do you want to squash the commits before I merge this? |
Yes, I will squash the commits. Will ping you when done |
* Supports up-spec 1.5.8 * Implemented as a generic library which can be integrated with any UPClients that implement UTransport Implements #3
8400294
to
ddce8f5
Compare
Okay @sophokles73 -- I squashed the commits |
Intro
Initial implementation of
up-streamer-rust
to connect point-to-point messages across anyUTransport
implementation, i.e.The implementation of handling Publish messages will come in a second PR.
Background
Hey there 👋
Based on @stevenhartley's stellar design, I reworked the in-progress first PR I had.
Looking for any feedback you may have 🙂
Addresses #3
A rework of #7 in which
UTransport
is thread-safeAlso rework of #9, since in this one we used dedicated tasks for output onto a transport when forwarding for efficiency and consistent sequencing.
TODO
up-rust
Performance
Seems to improve performance over #9 and in line with #7
Stats
Non-Thread-Safe: With Channels
# of messages received in 1 second
Thread-Safe: Straightforward Implementation
# of messages received in 1 second
Thread-Safe: Utilizing Async Task for Sender
# of messages received in 1 second