PHPackages                             rotaz/event-processor - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. rotaz/event-processor

ActiveLibrary[API Development](/categories/api)

rotaz/event-processor
=====================

A decoupled, flexible PHP event processor for modern enterprise integrations.

v1.0.10(5mo ago)03MITPHPPHP ^8.2 || ^8.3

Since Dec 19Pushed 5mo agoCompare

[ Source](https://github.com/rotaz-software/event-processor)[ Packagist](https://packagist.org/packages/rotaz/event-processor)[ RSS](/packages/rotaz-event-processor/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (14)Versions (2)Used By (0)

PHP Event Processor
===================

[](#php-event-processor)

O **rotaz\\event-processor** é um pacote para PHP pensado para processar eventos disparados por aplicações ou integrações, seguindo padrões modernos de arquitetura, inspirado pelo [spatie/laravel-webhook-client](https://github.com/spatie/laravel-webhook-client), mas com a proposta de ser desacoplado, agnóstico de framework e flexível para atender diferentes cenários empresariais.

---

Conceito
--------

[](#conceito)

O Event Processor centraliza o recebimento, validação, roteamento e processamento de eventos, permitindo que sistemas se comuniquem de forma desacoplada e eficiente. Cada evento é uma mensagem autônoma contendo contexto suficiente para ser processada sem depender do emissor.

---

Padrões Adotados
----------------

[](#padrões-adotados)

- **Desacoplamento:** O processamento de eventos é feito sem dependência direta do emissor ou consumidor, seguindo princípios de Event-Driven Architecture.
- **Open/Closed Principle:** Fácil extensão para novos tipos de eventos sem alterar o núcleo do pacote.
- **Single Responsibility Principle:** Cada classe/processador é responsável apenas por um tipo de evento/ação.
- **Strategy Pattern:** Processadores de eventos podem ser registrados dinamicamente, permitindo múltiplas estratégias para diferentes eventos.
- **Middleware-like Pipeline:** Possibilidade de encadear validações, autenticações ou transformações antes do processamento final.

---

Ganhos ao Utilizar
------------------

[](#ganhos-ao-utilizar)

- **Manutenção Facilitada:** Novos eventos ou integrações podem ser adicionados sem modificar o código existente.
- **Baixo Acoplamento:** Possibilita reutilização de componentes e fácil integração com diferentes sistemas (PHP puro, Laravel, Symfony, etc).
- **Resiliência:** Processamento assíncrono (opcional) e possibilidade de retries/fallbacks.
- **Observabilidade:** Hooks para logging, métricas e rastreamento de eventos.
- **Testabilidade:** Processadores são facilmente testáveis de forma isolada.

---

INSTALAÇÃO
----------

[](#instalação)

```
composer require rotaz/event-processor
```

CONFIGURAÇÃO BÁSICA
-------------------

[](#configuração-básica)

```
php artisan vendor:publish --provider="Rotaz\EventProcessor\EventProcessorServiceProvider" --tag="event-processor-config"
```

```

'configs' => [
        [
            'name' => 'evt-incoming-message',
            'signing_secret' => env('INBOUND_EVENT_SIGNING_SECRET', 'your-signing-secret'),
            'signature_header_name' => 'Signature',
            'signature_validator' => \App\Integration\Kommo\SignatureValidator::class,
            'inbound_profile' => \App\Integration\Kommo\IncomingMessageProfile::class,
            'inbound_response' => \Rotaz\EventProcessor\Services\Messages\DefaultInboundResponse::class,
            'inbound_data_model' => \Rotaz\EventProcessor\Domains\Models\AbstractInboundData::class,
            'store_headers' => [],
            'process_inbound_data_job' => '\App\Integration\Kommo\IncomingMessageProcessor',
        ],
        [
            'name' => 'evt-kommo-contacts',
            'signing_secret' => env('INBOUND_EVENT_SIGNING_SECRET', 'your-signing-secret'),
            'signature_header_name' => 'Signature',
            'signature_validator' => \App\Integration\Kommo\SignatureValidator::class,
            'inbound_profile' => \App\Integration\Kommo\IncomingMessageProfile::class,
            'inbound_response' => \Rotaz\EventProcessor\Services\Messages\DefaultInboundResponse::class,
            'inbound_data_model' => \Rotaz\EventProcessor\Domains\Models\AbstractInboundData::class,
            'store_headers' => [],
            'process_inbound_data_job' => '\App\Integration\Kommo\ContactsProcessor',
        ],
    ],

```

MIGRAÇÕES
---------

[](#migrações)

```
php artisan vendor:publish --provider="Rotaz\EventProcessor\EventProcessorServiceProvider" --tag="event-processor-migrations"
php artisan migrate
```

USO BÁSICO
----------

[](#uso-básico)

### Rota para receber eventos

[](#rota-para-receber-eventos)

Edit o arquivo de rotas (web.php ou api.php):

```
use Illuminate\Support\Facades\Route;

Route::rotaz('v1/kommo/contacts', 'evt-kommo-contacts');
Route::rotaz('v1/kommo/incoming-message', 'evt-incoming-message');
```

```
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Str;
use Rotaz\EventProcessor\Traits\WithKommoPayloadHelper;

class IncomingMessageProcessor extends \Rotaz\EventProcessor\Services\Jobs\ProcessInboundDataJob
{
    use WithKommoPayloadHelper;

    public function handle(): void
    {
        Log::debug('IncomingMessageProcessor handle', ['inboundData' => $this->inboundData]);
        $data = $this->get_first_from($this->inboundData->payload , 'message.add');
        KommoFacade::check_incoming_message($data);
    }

}
```

---

Solução Livre e Desacoplada
---------------------------

[](#solução-livre-e-desacoplada)

- **Sem dependências fixas:** Não depende de frameworks específicos.
- **Interface baseada em contratos:** Implemente seus próprios processadores conforme necessário.
- **Plugável:** Integre com filas, webhooks, APIs, CLI, etc.
- **Extensível:** Adicione middlewares, autenticação, validação ou logging conforme as necessidades do negócio.

---

Problema Empresarial Resolvido
------------------------------

[](#problema-empresarial-resolvido)

Empresas frequentemente precisam integrar múltiplos sistemas, processar notificações, webhooks ou atualizar estados baseados em eventos externos. O Event Processor abstrai e simplifica esse fluxo, reduzindo o acoplamento entre sistemas, facilitando a manutenção, escalabilidade e a governança de integrações.

---

Futuras Extensões
-----------------

[](#futuras-extensões)

- Suporte nativo a filas.
- Retry automático e dead letter queue.
- Ferramentas para debug e tracing.
- Adaptações para microservices e serverless.

---

Referências
-----------

[](#referências)

- [spatie/laravel-webhook-client](https://github.com/spatie/laravel-webhook-client)
- [Event-Driven Architecture (Martin Fowler)](https://martinfowler.com/articles/201701-event-driven.html)
- [Enterprise Integration Patterns](https://www.enterpriseintegrationpatterns.com/)

---

> Sinta-se livre para adaptar este pacote para sua realidade empresarial, mantendo o foco em flexibilidade, desacoplamento e boas práticas de arquitetura!

###  Health Score

35

—

LowBetter than 80% of packages

Maintenance73

Regular maintenance activity

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

150d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b247d3e62d5a0ab4093f344af4fd34ec3c024bc29d9df716f66585271f9267ee?d=identicon)[ROTAZ Dev Team](/maintainers/ROTAZ%20Dev%20Team)

---

Top Contributors

[![rotaz-dev](https://avatars.githubusercontent.com/u/234048134?v=4)](https://github.com/rotaz-dev "rotaz-dev (1 commits)")

---

Tags

phpsymfonylaravelevent-drivenwebhookintegrationmicroservicesevent processorEnterprise Integrationphp eventsdecoupled architecture

###  Code Quality

TestsPest

### Embed Badge

![Health badge](/badges/rotaz-event-processor/health.svg)

```
[![Health](https://phpackages.com/badges/rotaz-event-processor/health.svg)](https://phpackages.com/packages/rotaz-event-processor)
```

###  Alternatives

[spatie/laravel-query-builder

Easily build Eloquent queries from API requests

4.4k26.9M220](/packages/spatie-laravel-query-builder)[larastan/larastan

Larastan - Discover bugs in your code without running it. A phpstan/phpstan extension for Laravel

6.4k43.5M5.2k](/packages/larastan-larastan)[laravel/scout

Laravel Scout provides a driver based solution to searching your Eloquent models.

1.7k49.4M479](/packages/laravel-scout)[essa/api-tool-kit

set of tools to build an api with laravel

52680.5k](/packages/essa-api-tool-kit)[resend/resend-laravel

Resend for Laravel

1191.4M6](/packages/resend-resend-laravel)[yadahan/laravel-authentication-log

Laravel Authentication Log provides authentication logger and notification for Laravel.

416632.8k5](/packages/yadahan-laravel-authentication-log)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
