lebrains/lenats

This package is abandoned and no longer maintained. No replacement package was suggested.

The LeNats is a Symfony bundle. it's implements event-based architecture with nats streaming on php

Maintainers

👁 ilyashtrikul

Package info

github.com/LeBrains/LeNats

Type:symfony-bundle

pkg:composer/lebrains/lenats

Statistics

Installs: 9 209

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 1

v0.4.7.1 2019-10-03 07:52 UTC

Suggests

None

Provides

None

Conflicts

None

Replaces

None

GPL-3.0 a3feef4f3434cfae0f7d9767a291d664bb6af262

  • Ilya Shtrikul <shtricul.woop@gmail.comm>

symfonyphpevent-drivennatsnats streamingcloud events

This package is auto-updated.

Last update: 2020-08-25 18:15:59 UTC


README

Event-driven NATS streaming Symfony 4 bundle with Cloud Event standard

Install

composer require lebrains/lentas

Configuration

In config/packages/le_nats.yaml:

le_nats:
 connection:
 dsn: 'tcp://your-nats/host' # Required.
 client_id: 'unique_app_client_id' # Required. A unique identifier for a client. See ConnectRequest in https://nats.io/documentation/streaming/nats-streaming-protocol/
 cluster_id: 'your_nats_cluster_id' # Required. Cluster ID from nats streaming configuration. See https://github.com/nats-io/nats-streaming-server#configuration-file
 verbose: false # Optional. by default false, if you need additional set it to true
 
 context: # Optional. if you need additional configuration for TLS or TCP (will added soon) - you can define it here
 tls:
 protocol: tlsv1.2
 ciphers: ECDHE-RSA-AES256-GCM-SHA384
 peer_name: 'connection_peer_name'
 verify_peer: false
 verify_peer_name: false
 allow_self_signed: true
 
 accept_events: # Optional.
 # If you want to accept specific Event Object for each event - you can define it here
 # Here application.test.created - event type (or name)
 # App\Events\TestCloudEvent - class for this event
 # Class App\Events\TestCloudEvent MUST inherit LeNats\Events\CloudEvent
 application.test.created: App\Events\TestCloudEvent

Workflow

Publishing

<?php
$publisher = $container->get(\LeNats\Subscription\Publisher::class);

$event = new \LeNats\Events\CloudEvent();
$event->setType('some.event.type.created'); // This event wil be published to some.event.type queue
// $event->setId('unique-id'); Id will gets from data['id'] field, if it exists 
$data = [
 'id' => 'unique-id',
 'value' => 'Some event value'
];
$event->setData($data);

$publisher->publish($event);

Subscribing

bin/console nats:subscribe some.event.type -t 10

Make sure the Listener of your Event Type exists