PHPackages                             alessandrominoccheri/broadway-dynamodb - 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. [Database &amp; ORM](/categories/database)
4. /
5. alessandrominoccheri/broadway-dynamodb

ActiveLibrary[Database &amp; ORM](/categories/database)

alessandrominoccheri/broadway-dynamodb
======================================

DynamoDb store for broadway

v3.3.1(4y ago)2322[1 issues](https://github.com/AlessandroMinoccheri/broadway-dynamodb/issues)MITPHPPHP &gt;=7.4CI failing

Since Dec 6Pushed 4y ago1 watchersCompare

[ Source](https://github.com/AlessandroMinoccheri/broadway-dynamodb)[ Packagist](https://packagist.org/packages/alessandrominoccheri/broadway-dynamodb)[ RSS](/packages/alessandrominoccheri-broadway-dynamodb/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (7)Versions (34)Used By (0)

Broadway-dynamodb
=================

[](#broadway-dynamodb)

This library is an event store implementation for (Broadway)\[\] using Amazon DynamoDB.

Installation:
-------------

[](#installation)

---

[![Latest Stable Version](https://camo.githubusercontent.com/a7cbf26d9d0834292c9d0d8e5934dd814ff92ccb216516973c9d51b053cc591f/68747470733a2f2f706f7365722e707567782e6f72672f616c657373616e64726f6d696e6f6363686572692f62726f61647761792d64796e616d6f64622f76)](//packagist.org/packages/alessandrominoccheri/broadway-dynamodb)[![License](https://camo.githubusercontent.com/b952cbd35870ff1df27c147ad41de1cc1066578090bd6a7d4ea950983a34c0f6/68747470733a2f2f706f7365722e707567782e6f72672f616c657373616e64726f6d696e6f6363686572692f62726f61647761792d64796e616d6f64622f6c6963656e7365)](//packagist.org/packages/alessandrominoccheri/broadway-dynamodb)[![Build Status](https://github.com/alessandrominoccheri/broadway-dynamodb/workflows/CI/badge.svg)](https://github.com/alessandrominoccheri/broadway-dynamodb/workflows/CI/badge.svg)[![Total Downloads](https://camo.githubusercontent.com/71f97c9c3b7817f922b96c88ca234a8824d71715759a4c6e38c087889f0efdc4/68747470733a2f2f706f7365722e707567782e6f72672f616c657373616e64726f6d696e6f6363686572692f62726f61647761792d64796e616d6f64622f646f776e6c6f616473)](//packagist.org/packages/alessandrominoccheri/broadway-dynamodb)[![codecov](https://camo.githubusercontent.com/3670b692e7daea076f4b3ee5ff99c4015115775cacb97b0ae473f16ed2676ec0/68747470733a2f2f636f6465636f762e696f2f67682f416c657373616e64726f4d696e6f6363686572692f62726f61647761792d64796e616d6f64622f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/AlessandroMinoccheri/broadway-dynamodb)

Install package via composer

```
$ composer require alessandrominoccheri/broadway-dynamodb

```

Symfony
-------

[](#symfony)

To install this library into a Symfony 5 application you can check this repository:

[Symfony demo](https://github.com/AlessandroMinoccheri/broadway-dynamodb-demo)

Laravel
-------

[](#laravel)

To use this library into a Laravel project you need to install first broadway for laravel via composer and after broadway-dynamodb like this:

```
composer require nwidart/laravel-broadway
composer require alessandrominoccheri/broadway-dynamodb

```

Inside `config/broadway.php` you can configure dynamo event store like this:

```
'event-store' => [
    'table' => 'event_store',
    'driver' => 'dynamoDb',
    'connection' => 'mysql_events',
    'endpoint' => env("AWS_END_POINT"),
    'access_key_id' => env("AWS_ACCESS_KEY_ID_DYNAMO"),
    'secret_access_key' => env("AWS_SECRET_ACCESS_KEY_DYNAMO"),
    'region' => env("AWS_DEFAULT_REGION")
],

```

You can dispatch your command in this way:

```
$command = new YourCommand($params);

$this->commandBus->dispatch($command);

```

To register your service you can create a provider file like this for example:

```
class BroadwayServiceProvider extends ServiceProvider
{

    /**
     * Register the service provider.
     * @return void
     */
    public function register()
    {
        $this->bindEventSourcedRepositories();
        $this->bindReadModelRepositories();
        $this->registerCommandSubscribers();
        $this->registerEventSubscribers();
        $this->registerConsoleCommands();
    }
    public function boot()
    {
    }
    /**
     * Bind repositories
     */
    private function bindEventSourcedRepositories()
    {
        $this->app->bind(YourRepository::class, function ($app) {
            $eventStore = $app[\Broadway\EventStore\EventStore::class];
            $eventBus = $app[\Broadway\EventHandling\EventBus::class];
            return new YourRepository($eventStore, $eventBus);
        });
    }
    /**
     * Bind the read model repositories in the IoC container
     */
    private function bindReadModelRepositories()
    {
        $this->app->bind(YourReadModelRepository::class, function ($app) {
            $connection = $app[DynamoDbClient::class];
            return new YourReadModelRepository($connection);
        });
    }
    /**
     * Register the command handlers on the command bus
     */
    private function registerCommandSubscribers()
    {
        $yourCommandHandler = new YourCommandHandler($this->app[YourRepository::class]);
        $this->app['laravelbroadway.command.registry']->subscribe([
            $yourCommandHandler
        ]);
    }
    /**
     * Register the event listeners on the event bus
     */
    private function registerEventSubscribers()
    {
        $yourProjector = new YourProjector(
            $this->app[YourRepository::class]
        );

        $this->app['laravelbroadway.event.registry']->subscribe([
            $yourProjector
        ]);
    }

```

Debug
-----

[](#debug)

In this library is installed PHPStan, so if you want to check the code you can launch inside your cli:

```
vendor/bin/phpstan analyse

```

Tests
-----

[](#tests)

It's really important that all tests are green. To run tests you need to have docker up so you need to:

```
docker-compose up -d
./vendor/bin/phpunit

```

In this library is installed Psalm, so if you want to check the code you can launch inside your cli:

```
vendor/bin/psalm

```

###  Health Score

29

—

LowBetter than 60% of packages

Maintenance10

Infrequent updates — may be unmaintained

Popularity11

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity72

Established project with proven stability

 Bus Factor1

Top contributor holds 98.6% 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

Every ~35 days

Recently: every ~93 days

Total

31

Last Release

1664d ago

Major Versions

v1.0.5 → v2.0.02018-12-21

v1.0.7 → v2.0.12018-12-28

v1.0.9 → v2.0.52019-02-11

v2.1.0 → v3.0.02020-06-07

PHP version history (5 changes)v1.0.0PHP &gt;=7.0

v1.0.6PHP &gt;=5.5.9

v2.0.3PHP &gt;=7.1

v2.1.0PHP &gt;=7.2

v3.0.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/0ea71f884c621ad504ca545b717e107f3c6e4854d9e38c2dbd5a96ff184d3c9c?d=identicon)[AlessandroMinoccheri](/maintainers/AlessandroMinoccheri)

---

Top Contributors

[![AlessandroMinoccheri](https://avatars.githubusercontent.com/u/3356506?v=4)](https://github.com/AlessandroMinoccheri "AlessandroMinoccheri (71 commits)")[![kea](https://avatars.githubusercontent.com/u/208714?v=4)](https://github.com/kea "kea (1 commits)")

---

Tags

hacktoberfesthacktoberfest2020

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Psalm

Type Coverage Yes

### Embed Badge

![Health badge](/badges/alessandrominoccheri-broadway-dynamodb/health.svg)

```
[![Health](https://phpackages.com/badges/alessandrominoccheri-broadway-dynamodb/health.svg)](https://phpackages.com/packages/alessandrominoccheri-broadway-dynamodb)
```

###  Alternatives

[baopham/dynamodb

Eloquent syntax for DynamoDB

4975.7M6](/packages/baopham-dynamodb)[kitar/laravel-dynamodb

A DynamoDB based Eloquent model and Query builder for Laravel.

193675.3k1](/packages/kitar-laravel-dynamodb)[broadway/event-store-dbal

Event store implementation using doctrine/dbal

29891.9k8](/packages/broadway-event-store-dbal)[kettle/dynamodb-orm

A lightweight object-dynamodb mapper for PHP

49210.0k](/packages/kettle-dynamodb-orm)[swiftotter/driver

A database task-runner that helps you to turn production database into a staging/development database sandbox

6111.1k2](/packages/swiftotter-driver)[broadway/read-model-elasticsearch

Elasticsearch read model implementation using elastic/elasticsearch-php

10177.1k4](/packages/broadway-read-model-elasticsearch)

PHPackages © 2026

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