Commit Graph

220 Commits

Author SHA1 Message Date
Waldemar Quevedo
6b98b3edeb js: Improvements for push consumers with flow control
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-05-03 17:31:15 -07:00
Ivan Kozlovic
ea036d7532 Merge pull request #710 from wallyqs/godoc-context-example
Add godoc example for JS context functions
2021-05-03 12:42:53 -06:00
Ivan Kozlovic
1667213f01 Merge pull request #724 from nats-io/js_fix_shared_channel
Fixed SubscribeSync that could possibly share channel across 2 subs
2021-04-30 09:15:38 -06:00
Waldemar Quevedo
37f9684092 js: Add sub for PullSubscribe for fetch requests
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-04-29 21:36:09 -07:00
Ivan Kozlovic
92272d3f21 Fixed SubscribeSync that could possibly share channel across 2 subs
Also added missing subscription's lock when setting some fields
at the end of initialization.

Fixed some flappers and missing defers.

Signed-off-by: Ivan Kozlovic <ivan@synadia.com>
2021-04-29 16:18:13 -06:00
Waldemar Quevedo
3f05b6aa47 Add nats.Header type based on http.Header
Currently it is case sensitive and preserves the case
without doing any normalization.

Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-04-27 18:07:59 -07:00
Waldemar Quevedo
5a6cad0ca7 js: Fixes to parallel creation of durable consumers
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-04-21 16:36:55 -07:00
Waldemar Quevedo
1aefcb51d1 js: Fix issue with concurrent queue subscribers creating consumer
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-04-17 10:42:53 -07:00
Waldemar Quevedo
e7b6eda230 Add godoc example for JS context functions
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-04-12 14:00:04 -07:00
Waldemar Quevedo
1645e080ca Add consumer to msg Metadata
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-04-12 12:49:23 -07:00
Waldemar Quevedo
6f01c1e172 js: Add godoc examples for JetStream context
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-04-01 15:12:51 -07:00
Waldemar Quevedo
458d7de338 Merge pull request #696 from nats-io/js-meta-rename
js: Renaming of msg metadata fields
2021-04-01 06:46:28 -07:00
Waldemar Quevedo
a28b16eaa1 js: Renaming of msg metadata fields
Signed-off-by: Waldemar Quevedo <wally@synadia.com>

- Add SequencePair to MsgMetadata

Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-31 21:57:50 -07:00
Waldemar Quevedo
f42e6f27d9 js: PubAckFuture as interface
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-31 12:14:30 -07:00
Waldemar Quevedo
1b16e34671 js: Add support for FlowControl and Heartbeats
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-30 23:52:16 -07:00
Waldemar Quevedo
c43363623d js: Add AckOpts for msg.Ack()
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-30 13:27:20 -07:00
Waldemar Quevedo
bd0fb9d1e9 js: Fix ChanSubscribe acting as SubscribeSync
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-30 10:32:26 -07:00
Jaime Piña
077cf107c9 Make Durable mandatory for PullSubscribe
nats.Durable is a SubOpt that may be passed to PullSubscribe or other
methods. If a durable name isn't passed to PullSubscribe, then we return
a runtime error.

Instead of returning a runtime error for this case, this change updates
the PullSubscribe method to require a durable name parameter.
2021-03-29 16:35:51 -07:00
Ivan Kozlovic
d9ad37db5c Merge pull request #687 from nats-io/godoc
Update API doc
2021-03-29 15:55:53 -06:00
Derek Collison
f48fc6d498 Only place onto chan when creating it.
Signed-off-by: Derek Collison <derek@nats.io>
2021-03-29 13:40:48 -07:00
Derek Collison
282c8b1fea Remove direct from merge
Signed-off-by: Derek Collison <derek@nats.io>
2021-03-29 13:23:06 -07:00
Derek Collison
67ee642087 Fix for merge
Signed-off-by: Derek Collison <derek@nats.io>
2021-03-29 13:18:11 -07:00
Derek Collison
9df112cc6d Merge branch 'master' into async_pub 2021-03-29 13:13:38 -07:00
Derek Collison
8e7cef1c9e Updates based on PR feedback.
1. Done() -> Ok()
2. Async replies have _INBOX prefix versus custom for permissions.

Signed-off-by: Derek Collison <derek@nats.io>
2021-03-29 12:30:03 -07:00
Jaime Piña
e74a7b1a08 Update API doc 2021-03-29 10:21:01 -07:00
Derek Collison
e0f259ad57 Fixes for error changes
Signed-off-by: Derek Collison <derek@nats.io>
2021-03-27 13:42:07 -07:00
Derek Collison
a1da5ef42f Add ability to do async publish to JetStream.
Signed-off-by: Derek Collison <derek@nats.io>
2021-03-27 11:28:20 -07:00
Waldemar Quevedo
2539a87825 js: remove DirectOnly JS Option
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-27 10:46:36 -07:00
Waldemar Quevedo
ff187e9737 js: Use old request style for sub.Fetch(1)
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-24 23:59:16 -07:00
Waldemar Quevedo
11e6d91a1a js: Add option to consume from Streams that are mirrors or sourced
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
Signed-off-by: Jaime Piña <jaime@synadia.com>
2021-03-17 21:24:30 -07:00
Waldemar Quevedo
ac8b51a3ab js: Add js.PullSubscribe and sub.Fetch APIs for pull consumers
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-17 19:09:54 -07:00
Jaime Piña
4b55d1367f Update JetStreamManager to accept JSOpts 2021-03-11 13:06:24 -08:00
Jaime Piña
127790fcc6 Create jsOpts 2021-03-10 16:01:15 -08:00
Jaime Piña
994c933b84 js: Replace JetStreamManager listers with iterators 2021-03-09 15:29:29 -08:00
Waldemar Quevedo
e61aa9efa2 js: Add ReplayOriginal policy and RateLimit
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-05 22:35:48 -08:00
Waldemar Quevedo
c04f781f28 jsm: Add StreamNames and ConsumerNames
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-03-04 14:08:25 -08:00
Jaime Piña
171c566564 Validate ack policy for pull consumers
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-28 14:41:48 -08:00
Jaime Piña
924bd70443 Remove configurePublish from MaxWait
Add AckWait for PubOpt and SubOpt

Update tests to use AckWait instead
2021-02-28 14:41:35 -08:00
Jaime Piña
c1418b6df8 Add more JS sub opts 2021-02-28 14:41:11 -08:00
Jaime Piña
f681635fdc Add more SubOpts 2021-02-25 11:14:20 -08:00
Waldemar Quevedo
17713175b5 js: Test updates
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-24 14:57:04 -08:00
Waldemar Quevedo
cd50f85f1a js: Add QueueSubscribeSync to JS context
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-10 15:49:33 -08:00
Waldemar Quevedo
46a5ea3edf js: Handle 503 status when JS API unavailable in pull mode
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-09 17:40:22 -08:00
Waldemar Quevedo
7c44823185 js: Add GetMsg API to JetStreamManager
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-09 14:05:51 -08:00
Waldemar Quevedo
bb1d5e1c0d js: Remove PushDirect option
Now that Ack can be used by non JetStream subscriptions,
to subscriber directly it is only needed to use a regular
subscription.

Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-03 09:38:05 -08:00
Waldemar Quevedo
b8a5a1fcc4 js: Cleanup of JS consumers on unsub/drain
This adds logic to the client so that some type of consumers can
be cleaned up depending on whether `Unsubscribe` or `Drain` are called:

```go
// Deletes a consumer (both ephemeral and durables)
sub.Unsubscribe()

// Does not delete a durable consumers, but ephemerals are deleted.
sub.Drain()
```

This also means that both `nc.Drain` would also clean up any
ephemeral consumer that was created, but not doing anything
to durable consumers that were created or attached.

This way in case a durable is created and then an application restarts
and reattaches to the same durable consumer, then it can still delete
the consumer that it created with `Unsubscribe` or gracefully close
using `Drain` without deleting durable consumers.

Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-03 00:03:34 -08:00
Waldemar Quevedo
758fbdd947 Merge pull request #648 from nats-io/js-attach-rm
js: Make consumer attach based on durable name, remove Attach
2021-02-02 21:41:15 -08:00
Waldemar Quevedo
5a7adbce3f js: Allow Acking of JS messages without JS context
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-02 16:37:53 -08:00
Waldemar Quevedo
e4f7287f45 js: Make consumer attach based on durable name, remove Attach
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-02-02 12:54:35 -08:00
Waldemar Quevedo
19a62e4649 js: Add AccountInfo to JetStreamManagement
Signed-off-by: Waldemar Quevedo <wally@synadia.com>
2021-01-22 15:19:39 -08:00