This package is abandoned and no longer maintained. The author suggests using the ondrejbouda/message-bus package instead.

0.12 2020-02-07 11:41 UTC

This package is auto-updated.

Last update: 2020-08-10 08:18:34 UTC



Use fork at https://github.com/ondrejbouda/message-bus or very similar library https://github.com/nepada/message-bus .

What is this

Message bus is a library (or a collection of libraries) used by Dáme jídlo for separating different layers and contexts within it's monolithic backend application.

In Dáme jídlo the main purpose was to

  • create an application layer with commands/handlers (e.g. "place order") to separate domain logic from the rest of the application
  • get rid of tight coupling of different contexts by using asynchronous event subscribers for secondary tasks (e.g. send notification to customer on order placed)

The core is a general message bus. It can be used in different ways:

  • as a command bus, handling commands synchronously
  • as a event dispatching system, with the ability to plug-in asynchronous ways to handle events in different subscribers

The message bus functionality can be enhanced with middleware, e.g.:

  • logging
  • transaction management
  • sync/async handling


Pending :) See tests/Integration for basic use case examples.