Ecotone Framework is Service Bus Implementation. It enables message driven architecture and DDD, CQRS, Event Sourcing PHP

Overview

This is Read Only Repository

To contribute make use of Ecotone-Dev repository.

Github Actions Latest Stable Version License Total Downloads PHP Version Require

Ecotone is Service Bus Implementation, which enables message driven architecture with DDD, CQRS, Event Sourcing in PHP

Ecotone provides PHP with Command Bus, Query Bus, Event Bus, Interceptors, Aggregates, Sagas, Event Sourcing built on solutions that are message driven at the fundamental levels, and using integration with well known and stable solutions like Enqueue for asynchronous communication and Prooph for Event Sourcing.

Getting started

The quickstart page of the reference guide provides a starting point for using Ecotone.
Read more on the Blog.

Feature requests and issue reporting

Use issue tracking system for new feature request and bugs. Please verify that it's not already reported by someone else.

Contact

If you want to talk or ask question about Ecotone

Support Ecotone

If you want to help building and improving Ecotone consider becoming a sponsor:

Tags

PHP DDD CQRS Event Sourcing Symfony Laravel Service Bus

Comments
  • Add mapping from path to repository

    Add mapping from path to repository

    This pull requests adds a CLI mapping tool for converting the package path to it's repository name. If for whatever reason the repository name is not kebab case of the package name, it can be overridden using the $overrides array.

    For now I have disabled the actual split functionality, but this can be enabled by uncommenting the correct section of the workflow.

    Note that the large number of commits was how long it took me to realize bin was in the .gitignore. 🤦🏼‍♂️ 😉

    Edit: This has been updated. It no longer supports the $overrides array but relies on a recursive directory iterator that pulls the package name from the composer.json file. This came to mind in anticipation of #33.

    opened by aidan-casey 6
  • Update Dependencies and Github Actions

    Update Dependencies and Github Actions

    This pull request is more work toward right-aligning dependencies. As I am doing this, I am wondering if it might be okay to require PHP 8.1? There were several broken tests in PHP 8.0.

    opened by aidan-casey 6
  • as of PHP8.1, \Serializable requires __serialize() & __unseriaize()

    as of PHP8.1, \Serializable requires __serialize() & __unseriaize()

    opened by dgoosens 2
  • Adds gitattributes to exclude unnecessary files from production.

    Adds gitattributes to exclude unnecessary files from production.

    This pull request adds .gitattributes files to the packages to ensure certain files are never pulled by composer whn installing the packages. This keeps them nice and tidy in production code bases.

    On another note, we should probably look at removing some of the build files from packages and moving them to the root monorepo.

    opened by aidan-casey 1
  • Add styling workflow

    Add styling workflow

    This pull request adds a styling workflow to the repository. This can be modified as desired, but currently does the following:

    • Enforces PSR-12 standards.
    • Updates syntax to base level of PHP 8 (see here for more info).
    • Multiline array items must be indented once.
    • Multiline comments must be aligned (if PHP Doc style).
    • Converts FQDNs to imports.
    • Imports items from the global namespace.
    • Removes empty doc blocks.
    • Removes useless return statements.
    • Orders imports.
    • Marks test classes as internal.
    • Ensures phpunit methods are snake case.
    • Adds a space after not operators.
    • Ensures there is no multiline whitespace arround array double arrows.
    • Removes unused imports.
    • Removes unnecessary nullsafe operators.
    • Uses single quotes unless a complex string with variables.
    • Converts return null; to just return;
    • Ensures a trailing comma is added to a multiline array.
    • Ensures there is whitespace after a comma and before the next item in a single line array.
    opened by aidan-casey 1
  • test split testing

    test split testing

    In order to be as close as possible to production run, split testing in enabled to ensure dependencies being set up right and package being tested in isolation.

    opened by dgafka 0
  • Fix tests for running monorepo

    Fix tests for running monorepo

    This solves running tests for monorepo. In general the problems comes from the fact, that different modules sees each other right now. Which makes requirement for registering given services to make given module works correctly.

    opened by dgafka 0
Owner
EcotoneFramework
Ecotone is Service Bus Implementation which enables message driven architecture and DDD, CQRS, Event Sourcing in PHP
EcotoneFramework
PHP Lightweight Message Bus supporting CQRS.

Prooph Service Bus PHP 7.1+ lightweight message bus supporting CQRS and Micro Services Important This library will receive support until December 31,

null 440 Nov 20, 2022
A Symfony project made with DDD, CQRS and Hexagonal Architecture

Symfony Blog DDD + CQRS + Hexagonal Architecture A Symfony blog project made with CQRS, Hexagonal Architecture and DDD Docker integration This project

null 5 Aug 10, 2022
Clean Architecture, DDD and CQRS using Symfony 6

Task manager system using Clean Architecture, DDD and CQRS. Environment setup Install Docker Clone the project: git clone https://github.com/k0t9i/Tas

null 3 Sep 5, 2022
🐘 🎯 Hexagonal Architecture, DDD & CQRS in PHP

?? ?? Hexagonal Architecture, DDD & CQRS in PHP Example of a PHP application using Domain-Driven Design (DDD) and Command Query Responsibility Segrega

CodelyTV 2.5k Jan 6, 2023
Dockerise Symfony Application (Symfony 6 + Clean Architecture+ DDD+ CQRS + Docker + Xdebug + PHPUnit + Doctrine ORM + JWT Auth + Static analysis)

Symfony Dockerise Symfony Application Install Docker Install Docker Compose Docker PHP & Nginx Create Symfony Application Debugging Install Xdebug Con

null 48 Jan 5, 2023
A "from scratch" PHP-based implementation of Event-Sourcing

In here, you will find a "from scratch" PHP-based implementation of Event-Sourcing, kept to a minimum on purpose, to allow workshop attendees to explore and experiment with its concepts.

Marco Pivetta 94 Jan 1, 2023
Enraged Xenomorph - DDD/CQRS Symfony Application Boilerplate

Enraged Xenomorph - DDD/CQRS Symfony Application Boilerplate This project is very opinionated attempt to compile a bit of experience, few good practic

Gniewomir Świechowski 1 Jan 10, 2022
Orkestra is a library of infrastructure and architecture helpers for creating CQRS applications

Orkestra Orkestra is an opinionated framework with a plethora of recommendations on architectural design that we use internally at Morebec to develop

Morébec 2 Aug 18, 2021
Psalm plugin for patchlevel/event-sourcing

event-sourcing-psalm-plugin psalm plugin for event-sourcing library. installation composer require --dev patchlevel/event-sourcing-psalm-plugin confi

patchlevel 4 Dec 14, 2022
The easiest way to get started with event sourcing in Laravel

Event sourcing for Artisans ?? This package aims to be the entry point to get started with event sourcing in Laravel. It can help you with setting up

Spatie 591 Jan 4, 2023
POC d'un projet Clean Architecture + DDD

Proof Of Concept - Clean Architecture & DDD Installation Dans un premier temps, cloner le repository : git clone https://github.com/TBoileau/rse cd rs

Thomas Boileau 11 Sep 3, 2022
FFCMS 3 version core MVC architecture. Build-on use with ffcms main architecture builder.

FFCMS 3 version core MVC architecture. Build-on use with ffcms main architecture builder.

FFCMS 0 Feb 25, 2022
Command bus package for PHP

#Chief Chief is a powerful standalone command bus package for PHP 5.4+. Contents What is a command bus Installation Usage Class-based command handlers

Adam Nicholson 49 Apr 29, 2021
A simple bus ticket system made by Larave 5.4

Bus Ticket System About Bus Ticket System A simple bus ticket system made by Larave 5.4. There are several features here in this project and those are

Eng Hasan Hajjar 3 Sep 30, 2022
This library is an implementation of League\Event for Slim Framework

Slim Event Dispatcher This library is an implementation of League\Event for Slim Framework. This works with the latest version of Slim (V3). Installat

Aneek Mukhopadhyay 7 Aug 23, 2022
This is an implementation of PSR specification. It allows you to send and consume message with Redis store as a broker.

This is an implementation of PSR specification. It allows you to send and consume message with Redis store as a broker.

Enqueue 35 Nov 4, 2022
Tars is a high-performance RPC framework based on name service and Tars protocol, also integrated administration platform, and implemented hosting-service via flexible schedule.

TARS - A Linux Foundation Project TARS Foundation Official Website TARS Project Official Website WeChat Group: TARS01 WeChat Offical Account: TarsClou

THE TARS FOUNDATION PROJECTS 9.6k Jan 1, 2023
Magento 2 Message Queue OS AMQP Broker Implementation

Magento 2 Message Queue AMQP Backend AMQP message queue backend implementation for Rcason_Mq. Installation Require the module via Composer $ composer

Renato 8 Jul 12, 2022
Small convention based CQRS library for PHP

LiteCQRS for PHP Small naming-convention based CQRS library for PHP (loosely based on LiteCQRS for C#) that relies on the MessageBus, Command, EventSo

Benjamin Eberlei 560 Nov 20, 2022