Giter Club home page Giter Club logo

twilted's Introduction

twilted

CQRS and Event Sourcing—The Way I Like To Engineer Domains

Status

Build Status Scrutinizer Code Quality Code Intelligence Status

read more...

Concepts

Serializing instances

Instead of relying on PHP's built-in serialization format on the one hand or enforcing the use of a certain format like JSON (even if it is a wise option) on the other hand, we decided to use an own way of simplifying instances for storing them that doesn't get in your way too much but won't cause a lot of extra work either.

read more...

Immutability

It is important to eliminate side effects, which also means waving good-bye to setters. For configuring complex instances we use with…($value) methods that can be chained and always return a new instance.

read more...

Project structure

The core namespace \Kepawni\Twilted contains nothing but essential interfaces and an abstract class.

However, some basic convenience classes that can be used as an out-of-the-box solution can be found in \Kepawni\Twilted\Basic. These rely heavily on traits to cater for easy reuse while causing minimal coding.

read more...

twilted's People

Contributors

kepawni avatar

Stargazers

 avatar  avatar

Watchers

 avatar

twilted's Issues

Prevent double aggregate creation

Handlers should check whether the ID of an aggregate to be created already exists in the repo. Therefore event stores should expose a method to check for existing aggregate IDs. (Also needs amends made in kepawni/serge)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.