PHPackages                             nordsoftware/lumen-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. [Framework](/categories/framework)
4. /
5. nordsoftware/lumen-dynamodb

AbandonedArchivedLibrary[Framework](/categories/framework)

nordsoftware/lumen-dynamodb
===========================

DynamoDB module for Lumen framework. Based on https://github.com/baopham/laravel-dynamodb

0.3.1(10y ago)103.2k1[3 issues](https://github.com/nordsoftware/lumen-dynamodb/issues)2MITPHP

Since Feb 16Pushed 9y agoCompare

[ Source](https://github.com/nordsoftware/lumen-dynamodb)[ Packagist](https://packagist.org/packages/nordsoftware/lumen-dynamodb)[ RSS](/packages/nordsoftware-lumen-dynamodb/feed)WikiDiscussions develop Synced 4w ago

READMEChangelogDependencies (5)Versions (12)Used By (2)

lumen-dynamodb
==============

[](#lumen-dynamodb)

Lumen implementation for DynamoDB, based on [Bao Pham's laravel-dynamodb](https://github.com/baopham/laravel-dynamodb).

Prerequisites
=============

[](#prerequisites)

To install DynamoDB locally, see [Running DynamoDB on Your Computer](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.DynamoDBLocal.html).

When DynamoDB is set up, start it with `java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb`

You can use the DynamoDB artisan command to manage the DynamoDB at the moment:

```
php artisan dynamodb:create --config= # To create tables
php artisan dynamodb:delete --config= -y # To delete tables

```

The table configuration file should return an array of table configurations:

```
return [
    [
        'TableName'             => 'users',
        'AttributeDefinitions'  => [
            [
                'AttributeName' => 'id',
                'AttributeType' => 'S',
            ],
        ],
        'KeySchema'             => [
            [
                'AttributeName' => 'id',
                'KeyType'       => 'HASH',
            ],
        ],
        'ProvisionedThroughput' => [
            'ReadCapacityUnits'  => 10,
            'WriteCapacityUnits' => 20,
            'OnDemand'           => false,
        ],
    ],
    [
        'TableName'             => 'orders',
        'AttributeDefinitions'  => [
            [
                'AttributeName' => 'id',
                'AttributeType' => 'S',
            ],
        ],
        'KeySchema'             => [
            [
                'AttributeName' => 'id',
                'KeyType'       => 'HASH',
            ],
        ],
        'ProvisionedThroughput' => [
            'ReadCapacityUnits'  => 10,
            'WriteCapacityUnits' => 20,
            'OnDemand'           => false,
        ],
    ],
];

```

If you don't want to use a configuration file, you may as well override the Create/DeleteTablesCommand and put your table definitions in the `protected static $tables = []` array to override the tables.

Remember to add the overridden command in your `Kernel.php` file.

Install
=======

[](#install)

```
// .env:
DYNAMODB_KEY=
DYNAMODB_SECRET=
DYNAMODB_REGION=
DYNAMODB_VERSION=latest
DYNAMODB_LOCAL_ENDPOINT=http://localhost:8000 # Only used for local DynamoDB

// config/services.php
return [
    ...
    'dynamodb' => [
        'key'      => env('DYNAMODB_KEY', 'dynamodb_local'),
        'secret'   => env('DYNAMODB_SECRET', 'secret'),
        'region'   => env('DYNAMODB_REGION', 'eu-central-1'),
        'version'  => env('DYNAMODB_VERSION', 'latest'),
        'endpoint' => env('DYNAMODB_LOCAL_ENDPOINT', 'http://localhost:8000'),
    ],
    ...
];

// bootstrap/app.php
...
$app->configure('services');
...
$app->register(Nord\Lumen\DynamoDb\DynamoDBServiceProvider::class);

```

Usage
=====

[](#usage)

Extend all your models from \\Nord\\Lumen\\DynamoDb\\Domain\\Model\\DynamoDbModel

You will need to set the following properties for your model to get the DynamoDbModel to work:

```
// The keys are defined when creating the table. If you are using only one primary key, set the $primaryKey,
// if using both primaryKey and sortKey, define the $compositeKey.
protected $primaryKey = ''; // Ignore if using composite key.
protected $compositeKey = ['', '']; // Ignore if you don't have a composite key.
protected $table = ''; // Set the DynamoDB table this model uses
// If using global or local indexes, define the key => indexName values here.
protected $dynamoDbIndexKeys = [
    '' => '',
    '' => '',
];

// Set this to be able to mass assign attributes.
protected $fillable = ['email', 'name'];
protected $guarded = ['address'];

```

Using the models works pretty much in the same way as with Eloquent:

```
$model = DynamoDbModel::find(1); // Find a model with the primary key 1
// Using where:
$model = DynamoDbModel::where(['email' => 'test@example.com']);
$model->get()->first(); // Returns the first record.

$model = new DynamoDbModel(['name' => 'Demo user', 'email' => 'test@example.com']); // Fillable attributes.
$model->setAddress('Teststreet 1'); // Set the guarded attribute.
$model->save();

```

License
=======

[](#license)

See [LICENSE](LICENSE).

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity23

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 55.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 ~6 days

Recently: every ~13 days

Total

10

Last Release

3732d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ab3becb3323ceb956c661f3e6ef4312dcd00ec4ba03d1bba5fcef793f5c4286d?d=identicon)[crisu83](/maintainers/crisu83)

![](https://www.gravatar.com/avatar/2f766f3d06300e4e58806cac328ec6774408e2782497f3624f6112e0838bd057?d=identicon)[soderluk](/maintainers/soderluk)

---

Top Contributors

[![christoph-kluge](https://avatars.githubusercontent.com/u/1446269?v=4)](https://github.com/christoph-kluge "christoph-kluge (5 commits)")[![hugovk](https://avatars.githubusercontent.com/u/1324225?v=4)](https://github.com/hugovk "hugovk (2 commits)")[![soderluk](https://avatars.githubusercontent.com/u/6086071?v=4)](https://github.com/soderluk "soderluk (2 commits)")

---

Tags

dynamodblumenlumen-dynamodbphp

### Embed Badge

![Health badge](/badges/nordsoftware-lumen-dynamodb/health.svg)

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

###  Alternatives

[laravel/ai

The official AI SDK for Laravel.

1.0k2.1M163](/packages/laravel-ai)[pressbooks/pressbooks

Pressbooks is an open source book publishing tool built on a WordPress multisite platform. Pressbooks outputs books in multiple formats, including PDF, EPUB, web, and a variety of XML flavours, using a theming/templating system, driven by CSS.

45344.0k1](/packages/pressbooks-pressbooks)[psalm/plugin-laravel

Psalm plugin for Laravel

3345.1M337](/packages/psalm-plugin-laravel)[jasara/php-amzn-selling-partner-api

A fluent interface for Amazon's Selling Partner API in PHP

1348.1k1](/packages/jasara-php-amzn-selling-partner-api)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

245.2k](/packages/aedart-athenaeum)[fleetbase/core-api

Core Framework and Resources for Fleetbase API

1232.2k16](/packages/fleetbase-core-api)

PHPackages © 2026

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