Skip to content

Custom Operator #2

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

Closed
nebhale opened this issue Jun 21, 2018 · 4 comments
Closed

Custom Operator #2

nebhale opened this issue Jun 21, 2018 · 4 comments
Assignees
Labels
status: duplicate A duplicate of another issue type: enhancement A general enhancement

Comments

@nebhale
Copy link
Contributor

nebhale commented Jun 21, 2018

Having some experience doing this now, the client portion of the implementation (i.e. the portion that transforms Reactive Streams into wire-protocol) should be implemented as a custom operator. This would allow the use of onSubscribe() to establish the connection, cancel() to terminate it, and request() to call for more data from a portal. This is much easier to troubleshoot and more intuitive to maintain than the current nesting dolls of reactive flows.

@nebhale nebhale added the type: enhancement A general enhancement label Jun 21, 2018
@nebhale nebhale added this to the 1.0.0.M4 milestone Jun 21, 2018
@nebhale nebhale self-assigned this Jun 21, 2018
@nebhale nebhale modified the milestones: 1.0.0.M4, 1.0.0.M6 Sep 30, 2018
@davecramer
Copy link
Member

Can you give me an example of what you are looking to do here ?

@nebhale
Copy link
Contributor Author

nebhale commented Oct 15, 2018

Yeah, this is a really hard one, and probably not suitable to pick up. Effectively, we use that really complicated *MessageFlow and a bunch of Processors to get data into and out of reactor-netty. What needs to happen is that we have to write a custom Reactor operator (implement Subscriber and Publisher from scratch directly) and act as the reactive to wire-protocol bridge. It'll be more efficient, more understandable, more debuggable, and better all around. However, it take a ton of Reactor expertise to make it happen, which sucks.

@davecramer
Copy link
Member

No worries, I've found a bunch of other stuff to work on.

The way we loop through oid's for instance
and binary encoder/decoders

nebhale pushed a commit that referenced this issue Oct 22, 2018
Previously, the BooleanCodec only decoded Java-standard representations of
boolean values in data from the server.  However, PostgreSQL has other
representations that were not decoded.  This change adds support for more, and
Hopefully all, boolean representations.

[#2]
@nebhale nebhale reopened this Oct 22, 2018
@nebhale nebhale modified the milestones: 1.0.0.M6, 1.0.0.M7 Nov 20, 2018
@nebhale nebhale removed this from the 1.0.0.M7 milestone Dec 11, 2018
@mp911de
Copy link
Collaborator

mp911de commented Oct 16, 2020

Closing this issue as we have a custom subscriber and FluxDiscardOnCancel in place that are sufficient for protocol handling.

@mp911de mp911de closed this as completed Oct 16, 2020
@mp911de mp911de added the status: duplicate A duplicate of another issue label Oct 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
status: duplicate A duplicate of another issue type: enhancement A general enhancement
Projects
None yet
Development

No branches or pull requests

3 participants