All Projects → prooph → Service Bus

prooph / Service Bus

Licence: bsd-3-clause
PHP Lightweight Message Bus supporting CQRS.

Projects that are alternatives of or similar to Service Bus

Rebus
🚌 Simple and lean service bus implementation for .NET
Stars: ✭ 1,733 (+302.09%)
Mutual labels:  service-bus, messaging
microservice framework version 6
A Java framework to support applications utilising CQRS and Event Sourcing architectures
Stars: ✭ 25 (-94.2%)
Mutual labels:  cqrs, messaging
Nsqsharp
A .NET library for NSQ, a realtime distributed messaging platform
Stars: ✭ 150 (-65.2%)
Mutual labels:  service-bus, messaging
Netdevpack
A smart set of common classes and implementations to improve your development productivity.
Stars: ✭ 220 (-48.96%)
Mutual labels:  messaging, cqrs
event-store-bus-bridge
Marry CQRS with Event Sourcing
Stars: ✭ 37 (-91.42%)
Mutual labels:  cqrs, service-bus
Kledex
.NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing.
Stars: ✭ 502 (+16.47%)
Mutual labels:  service-bus, cqrs
Azure Service Bus Dotnet
☁️ .NET Standard client library for Azure Service Bus
Stars: ✭ 237 (-45.01%)
Mutual labels:  service-bus, messaging
Azure Service Bus
☁️ Azure Service Bus service issue tracking and samples
Stars: ✭ 472 (+9.51%)
Mutual labels:  service-bus, messaging
psr-container-messenger
Message bus and queue for Mezzio with Symfony Messenger + Enqueue
Stars: ✭ 24 (-94.43%)
Mutual labels:  cqrs, messaging
azure-service-bus-java
☁️ Java client library for Azure Service Bus
Stars: ✭ 61 (-85.85%)
Mutual labels:  messaging, service-bus
Kekkonen
A remote (CQRS) API library for Clojure.
Stars: ✭ 201 (-53.36%)
Mutual labels:  messaging, cqrs
OpenCQRS
.NET Standard framework to create simple and clean design. Advanced features for DDD, CQRS and Event Sourcing.
Stars: ✭ 546 (+26.68%)
Mutual labels:  cqrs, service-bus
Event Sourcing Jambo
An Hexagonal Architecture with DDD + Aggregates + Event Sourcing using .NET Core, Kafka e MongoDB (Blog Engine)
Stars: ✭ 159 (-63.11%)
Mutual labels:  service-bus, cqrs
dotnetcqs
Command/Query separation for .NET
Stars: ✭ 14 (-96.75%)
Mutual labels:  cqrs, messaging
azure-service-bus-dotnet-plugins
☁️ Plugins for the .NET Standard client library for Azure Service Bus
Stars: ✭ 15 (-96.52%)
Mutual labels:  messaging, service-bus
Servicebus
Simple service bus for sending events between processes using amqp.
Stars: ✭ 415 (-3.71%)
Mutual labels:  service-bus, messaging
Sqlstreamstore
Stream Store library targeting RDBMS based implementations for .NET
Stars: ✭ 374 (-13.23%)
Mutual labels:  cqrs
Viper
Viper 是一个基于Anno微服务引擎开发的Dashboard项目、示例项目。Anno 底层通讯采用 grpc、thrift。自带服务发现、调用链追踪、Cron 调度、限流、事件总线等等
Stars: ✭ 402 (-6.73%)
Mutual labels:  cqrs
Quickblox Ios Sdk
QuickBlox iOS SDK for messaging and video calling
Stars: ✭ 373 (-13.46%)
Mutual labels:  messaging
Go Api Boilerplate
Go Server/API boilerplate using best practices DDD CQRS ES gRPC
Stars: ✭ 373 (-13.46%)
Mutual labels:  cqrs

Prooph Service Bus

PHP 7.1+ lightweight message bus supporting CQRS and Micro Services

Build Status Coverage Status Gitter

Important

This library will receive support until December 31, 2019 and will then be deprecated.

For further information see the official announcement here: https://www.sasaprolic.com/2018/08/the-future-of-prooph-components.html

Messaging API

prooph/service-bus is a lightweight messaging facade. It allows you to define the API of your model with the help of messages.

  1. Command messages describe actions your model can handle.
  2. Event messages describe things that happened while your model handled a command.
  3. Query messages describe available information that can be fetched from your (read) model.

prooph/service-bus shields your model. Data input and output ports become irrelevant and no longer influence business logic. We're looking at you Hexagonal Architecture.

prooph/service-bus decouples your model from any framework. You can use a web framework like Zend, Symfony, Laravel and co. to handle http requests and pass them via prooph/service-bus to your model but you can also receive the same messages via CLI or from a messaging system like RabbitMQ or Beanstalkd.

It is also a perfect fit for microservices architecture as it provides an abstraction layer for message-based inter-service communication.

prooph_architecture

Installation

You can install prooph/service-bus via composer by running composer require prooph/service-bus, which will install the latest version as requirement to your composer.json.

Quick Start

<?php

use Prooph\ServiceBus\CommandBus;
use Prooph\ServiceBus\Example\Command\EchoText;
use Prooph\ServiceBus\Plugin\Router\CommandRouter;

$commandBus = new CommandBus();

$router = new CommandRouter();

//Register a callback as CommandHandler for the EchoText command
$router->route('Prooph\ServiceBus\Example\Command\EchoText')
    ->to(function (EchoText $aCommand): void {
        echo $aCommand->getText();
    });

//Expand command bus with the router plugin
$router->attachToMessageBus($commandBus);

//We create a new Command
$echoText = new EchoText('It works');

//... and dispatch it
$commandBus->dispatch($echoText);

//Output should be: It works

Live Coding Introduction

Prooph Service Bus v6

Documentation

Documentation is in the docs tree, and can be compiled using bookdown.

$ php ./vendor/bin/bookdown docs/bookdown.json
$ php -S 0.0.0.0:8080 -t docs/html/

Then browse to http://localhost:8080/

Support

Contribute

Please feel free to fork and extend existing or add new features and send a pull request with your changes! To establish a consistent code quality, please provide unit tests for all your changes and may adapt the documentation.

License

Released under the New BSD License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].