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

Issues reported in Go JetStream simplification #229

Open
2 of 11 tasks
aricart opened this issue Jun 27, 2023 · 5 comments
Open
2 of 11 tasks

Issues reported in Go JetStream simplification #229

aricart opened this issue Jun 27, 2023 · 5 comments
Labels
client Client related work enhancement New feature or request

Comments

@aricart
Copy link
Member

aricart commented Jun 27, 2023

Overview

This is actually just a list of issues reported on JetStream simplification on the Go client, most may be Go specific, but take a look if you are doing something similar that may require some fix.

[These were extracted from internal client-dev channel notified by @piotrpio ]

Clients and Tools

Other Tasks

  • docs.nats.io updated @bruth
  • Update ADR to Implemented
  • Update client features spreadsheet

Client authors please update with your progress. If you open issues in your own repositories as a result of this request, please link them to this one by pasting the issue URL in a comment or main issue description.

@aricart aricart added enhancement New feature or request client Client related work labels Jun 27, 2023
@aricart
Copy link
Member Author

aricart commented Jun 27, 2023

  • For javascript, JSM streams list allows for filter to be specified.
  • In javascript getting info on an ordered consumer that doesn't exist will realize the consumer
  • In Javascript stopping a consumer doesn't delete it - destroy does.
  • Prefixes for JetStream can be specified on both the js and jsm contexts
  • [FIXED] ability to specify headers only in an ordered consumer

@aricart
Copy link
Member Author

aricart commented Jun 27, 2023

@Jarema I know that 2.10.x will have the ability to identify whether the intent of the operation is create/update, can you please put a pointer to the PR so we can ADR it

@scottf
Copy link
Collaborator

scottf commented Jun 27, 2023

For java/.net

  • JSManagement already provides to get stream list with filter.
  • Ordered consumer is not implemented yet, but consumer info cannot be called without a consumer and consumer.info isn't exposed unless there is a consumer, so not sure how this applies.
  • used the name CreateOrUpdateConsumer
  • "stop" drains / unsubscribe, so an ephemeral will no longer have interest and be destroyed. Durable will do durable.
  • creating simplification contexts allows providing JetStreamOptions, which support custom jetreams prefixes and domains. Connection options provide the ability to replace the default inbox prefix.
  • There is one ConsumerConfiguration object, which already supports headers only. The same object is used in simplification or not simplification since it's the exact same code underneath. There is no requirement to have a different consumer configuration under simplification.

@Jarema
Copy link
Member

Jarema commented Jun 27, 2023

Here is the PR: nats-io/nats-server#4217

Before 2.10, you would need to do the same as old Go client did: First call info, them create / update or not.
After 2.10, you can skip this check, saving a lot of resources on the server side (and have less race'y behaviour)

@scottf
Copy link
Collaborator

scottf commented Jun 27, 2023

Here is the PR: nats-io/nats-server#4217

Before 2.10, you would need to do the same as old Go client did: First call info, them create / update or not. After 2.10, you can skip this check, saving a lot of resources on the server side (and have less race'y behaviour)

Is there an work issue created for this functionality?

@ripienaar ripienaar removed their assignment Aug 29, 2023
@scottf scottf removed their assignment Oct 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
client Client related work enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

9 participants