/service-bus

PHP Service Bus (publish-subscribe pattern) implementation

Primary LanguagePHPMIT LicenseMIT

What is it?

Build Status Code Coverage Scrutinizer Code Quality SymfonyInsight Latest Stable Version License Financial Contributors on Open Collective

A concurrency (based on Amp) framework, that lets you implement an asynchronous messaging, a transparent workflow and control of long-lived business transactions by means of the Saga pattern. It implements the message based architecture and it includes the following patterns: Saga, Publish\Subscribe, Message Bus.

Main Features

  • Сooperative multitasking
  • Asynchronous messaging (Publish\Subscribe pattern implementation)
  • Event-driven architecture
  • Distribution (messages can be handled by different processes)
    • Subscribers can be implemented on any programming language
  • High performance
  • Orchestration of long-lived business transactions (for example, a checkout) with the help of Saga Pattern
  • Full history of aggregate changes (EventSourcing)

Get started

composer create-project php-service-bus/skeleton my-project

Demo application (WIP): service-bus-demo

Documentation

Documentation can be found in the documentation repository

Requirements

  • PHP 7.4
  • RabbitMQ
  • PostgreSQL 9.5+

Contributing

Contributions are welcome! Please read CONTRIBUTING for details.

Communication Channels

You can find help and discussion in the following places:

License

The MIT License (MIT). Please see LICENSE for more information.