anemaloy/laravel-kafka

Kafka transport for laravel

dev-main 2023-11-09 17:33 UTC

This package is auto-updated.

Last update: 2024-04-09 18:21:15 UTC


README

Библиотека предназначена для передачи событий в формате JSON через Apache Kafka.

Библиотека выполняет сериализацию и десериалзиацию данных событий, публикацию и чтение событий из топиков Kafka, а также валидацию данных событий на основе JSON-схемы.

Установка

Для установки kvarta-shared/event-collaboration необходимо подключить composer-репозиторий и затем установить пакет стандартным способом:

$ composer config repositories.git.structure.pik-broker.ru/231 '{"type": "composer", "url": "https://git.structure.pik-broker.ru/api/v4/group/231/-/packages/composer/packages.json"}'
$ composer require kvarta-shared/event-collaboration

Создание каталога событий

Для хранения каталога событий рекомендуется создать отдельный пакет composer с зависимостью от kvarta-shared/event-collaboration.

Каталог событий должен содержать в себя одну или несколько директорий со схемами событий в формате JSON, каждая директория соответствует префиксу URI схем в этой директории.

Также стоит включить в каталог событий phpunit тест существующих схем:

<?php

namespace PikBroker\MySchemaCatalog\Tests\Functional;

use Anemaloy\KafkaLocator\Tests\Functional\AbstractCheckJsonFilesTest;

class CheckJsonFilesTest extends AbstractCheckJsonFilesTest
{

    protected function getEventDirectories(): iterable
    {
        yield 'https://foo.domain.org/' => __DIR__ . '/../../Resources/events/foo.domain.org';
        yield 'https://bar.domain.org/' => __DIR__ . '/../../Resources/events/bar.domain.org';
    }
}
 

Документация

Правила разработки

Правила разработки описаны в CONTRIBUTING.md.