JStream
faststream.nats.schemas.JStream
#
JStream(
name,
description=None,
subjects=None,
retention=None,
max_consumers=None,
max_msgs=None,
max_bytes=None,
discard=OLD,
max_age=None,
max_msgs_per_subject=-1,
max_msg_size=-1,
storage=None,
num_replicas=None,
no_ack=False,
template_owner=None,
duplicate_window=0,
placement=None,
mirror=None,
sources=None,
sealed=False,
deny_delete=False,
deny_purge=False,
allow_rollup_hdrs=False,
republish=None,
allow_direct=None,
mirror_direct=None,
declare=True,
)
Bases: NameRequired
A class to represent a JetStream stream.
Initialized JSrream.
PARAMETER | DESCRIPTION |
---|---|
name
|
Stream name to work with.
TYPE:
|
description
|
Stream description if needed.
TYPE:
|
subjects
|
Subjects, used by stream to grab messages from them. Any message sent by NATS Core will be consumed by stream. Also, stream acknowledge message publisher with message, sent on reply subject of publisher. Can be single string or list of them. Dots separate tokens of subjects, every token may be matched with exact same token or wildcards.
TYPE:
|
retention
|
Retention policy for stream to use. Default is Limits, which will delete messages only in case of resource depletion, if 'DiscardPolicy.OLD' used. In case of 'DiscardPolicy.NEW', stream will answer error for any write request. If 'RetentionPolicy.Interest' is used, message will be deleted as soon as all active consumers will consume that message. Note: consumers should be bounded to stream! If no consumers bound, all messages will be deleted, including new messages! If 'RetentionPolicy.WorkQueue' is used, you will be able to bound only one consumer to the stream, which guarantees message to be consumed only once. Since message acked, it will be deleted from the stream immediately. Note: Message will be deleted only if limit is reached or message acked successfully. Message that reached MaxDelivery limit will remain in the stream and should be manually deleted! Note: All policies will be responsive to Limits.
TYPE:
|
max_consumers
|
Max number of consumers to be bound with this stream.
TYPE:
|
max_msgs
|
Max number of messages to be stored in the stream. Stream can automatically delete old messages or stop receiving new messages, look for 'DiscardPolicy'.
TYPE:
|
max_bytes
|
Max bytes of all messages to be stored in the stream. Stream can automatically delete old messages or stop receiving new messages, look for 'DiscardPolicy'.
TYPE:
|
discard
|
Determines stream behavior on messages in case of retention exceeds.
TYPE:
|
max_age
|
TTL in seconds for messages. Since message arrive, TTL begun. As soon as TTL exceeds, message will be deleted.
TYPE:
|
max_msgs_per_subject
|
Limit message count per every unique subject. Stream index subjects to it's pretty fast tho.
TYPE:
|
max_msg_size
|
Limit message size to be received. Note: the whole message can't be larger than NATS Core message limit.
TYPE:
|
storage
|
Storage type, disk or memory. Disk is more durable, memory is faster. Memory can be better choice for systems, where new value overrides previous.
TYPE:
|
num_replicas
|
Replicas of stream to be used. All replicas create RAFT group with leader. In case of losing lesser than half, cluster will be available to reads and writes. In case of losing slightly more than half, cluster may be available but for reads only.
TYPE:
|
no_ack
|
Should stream acknowledge writes or not. Without acks publisher can't determine, does message received by stream or not.
TYPE:
|
template_owner
|
A TTL for keys in implicit TTL-based hashmap of stream. That hashmap allows to early drop duplicate messages. Essential feature for idempotent writes. Note: disabled by default. Look for 'Nats-Msg-Id' in NATS documentation for more information.
TYPE:
|
duplicate_window
|
A TTL for keys in implicit TTL-based hashmap of stream. That hashmap allows to early drop duplicate messages. Essential feature for idempotent writes. Note: disabled by default. Look for 'Nats-Msg-Id' in NATS documentation for more information.
TYPE:
|
placement
|
NATS Cluster for stream to be deployed in. Value is name of that cluster.
TYPE:
|
mirror
|
Should stream be read-only replica of another stream, if so, value is name of that stream.
TYPE:
|
sources
|
Should stream mux multiple streams into single one, if so, values is names of those streams.
TYPE:
|
sealed
|
Is stream sealed, which means read-only locked.
TYPE:
|
deny_delete
|
Should delete command be blocked.
TYPE:
|
deny_purge
|
Should purge command be blocked.
TYPE:
|
allow_rollup_hdrs
|
Should rollup headers be blocked.
TYPE:
|
republish
|
Should be messages, received by stream, send to additional subject.
TYPE:
|
allow_direct
|
Should direct requests be allowed. Note: you can get stale data.
TYPE:
|
mirror_direct
|
Should direct mirror requests be allowed
TYPE:
|
declare
|
Whether to create stream automatically or just connect to it.
TYPE:
|
Source code in faststream/nats/schemas/js_stream.py
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 |
|
config
instance-attribute
#
config = StreamConfig(
name=name,
description=description,
retention=retention,
max_consumers=max_consumers,
max_msgs=max_msgs,
max_bytes=max_bytes,
discard=discard,
max_age=max_age,
max_msgs_per_subject=max_msgs_per_subject,
max_msg_size=max_msg_size,
storage=storage,
num_replicas=num_replicas,
no_ack=no_ack,
template_owner=template_owner,
duplicate_window=duplicate_window,
placement=placement,
mirror=mirror,
sources=sources,
sealed=sealed,
deny_delete=deny_delete,
deny_purge=deny_purge,
allow_rollup_hdrs=allow_rollup_hdrs,
republish=republish,
allow_direct=allow_direct,
mirror_direct=mirror_direct,
subjects=[],
)