NAME

Net::NATS2::JetStream - JetStream stream management and synchronous publishing

SYNOPSIS

my $js = Net::NATS2::JetStream->new(client => $client);
$js->add_stream({ name => 'ORDERS', subjects => ['orders'] });
my $ack = $js->publish('orders', 'created');

$js->add_consumer('ORDERS', {
    durable_name => 'WORKER',
    ack_policy   => 'explicit',
});
my $message = $js->next_message('ORDERS', 'WORKER');
$js->ack($message);

DESCRIPTION

This module wraps the JetStream request/reply API for account information, stream and consumer management, synchronous publish acknowledgements, and pull-consumer delivery. Methods return a decoded response hash on success. On failure they return undef and make the JetStream error response, when available, accessible through last_error.

PULL CONSUMERS

add_consumer($stream, $config) creates a consumer. Provide durable_name for a durable consumer and omit deliver_subject to create a pull consumer. fetch($stream, $consumer, $batch, $timeout) returns an array reference of up to $batch messages. next_message is the single-message equivalent.

Use ack($message), nak($message), or term($message) to acknowledge, request redelivery, or stop delivery of a received JetStream message.