Giter Site home page Giter Site logo

muratmert / liquidprojections Goto Github PK

View Code? Open in Web Editor NEW

This project forked from liquidprojections/liquidprojections

0.0 1.0 0.0 18.75 MB

Liquid Projections supports building and maintaining autonomous .NET projection code in an Event Sourcing architecture.

C# 98.30% PowerShell 1.70%

liquidprojections's Introduction

Liquid Projections Build status

What is this?

Liquid Projections is designed as a library (and not a framework) that should help you write maintainable projection code in an event sourcing architecture. After evaluating several years of working with an event sourced architecture, I decided I needed a fresh start. This project has been designed based on the following principles:

  • Designed as a library which doesn't hide the magic behind abstractions and tries to avoid the need to sub-class anything.
  • Projections must be autonomous so whether a projector stores its projections in-memory, in RavenDB or in a RDBMS is a local concern.
  • Similarly, whether it restarts from scratch every time or stores progress information in-between is a decision each projection can make.
  • Is distributed as separate NuGet packages so that you don't need to take dependencies on stuff you don't need.
  • async all the way

What does it offer?

Liquid Projections offers several components that are designed to be used independently.

  • An EventMapBuilder to fluently build an EventMap that defines how events should be handled during projection.
  • A thin abstraction named IEventStore to represent an event store. Currently only NEventStore is supported as well as a in-memory event store for testing purposes.
  • Projector classes for RavenDB, NHibernate as well as an agnostic Projector that you can use within your projectors.
  • Support for look-ups by allowing you to nest projectors.
  • A Dispatcher that can be used to connect an IEventStore implementation with a projector.
  • A ProjectionException that provides everything you would like to know to understand why a projection fails.

How to get started?

For now, please review the unit tests.

liquidprojections's People

Contributors

corvansteijn avatar danielmarbach avatar dennisdoomen avatar iharbury avatar mterwoord avatar ronaldkroon avatar

Watchers

 avatar

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.