anemaloy / laravel-kafka
Kafka transport for laravel
Requires
- php: ^7.4 || ^8.2
- ext-json: *
- composer/semver: *
- m1x0n/opis-json-schema-error-presenter: ^0.5.2
- opis/json-schema: ^1.0
- ramsey/uuid: ^4.1
Requires (Dev)
- phpunit/phpunit: ^9.5 <= 9.5.16
- symfony/console: *
- symplify/easy-coding-standard: ^10.0
This package is auto-updated.
Last update: 2025-03-09 20:12:12 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'; } }
Документация
- Правила наименований событий и размещения JSON-схем описаны в Resources/docs/events.md.
- Информация о работе с Apache Kafka находится в Resources/docs/kafka.md.
- Примеры использования библиотеки доступны в Resources/docs/examples.
Правила разработки
Правила разработки описаны в CONTRIBUTING.md.