Giter Club home page Giter Club logo

hevents's Introduction

HEvents: An Event Sourcing Library for Haskell

The goal of this library is to make it easy to develop and deploy production grade (micro-)services based on event sourced model. Each such service should be easily constructed and include the following:

  • A underlying business model expressed as a pure data structures to which can be sent Commands and applied Events,
  • Atomic application of some commands to underlying model,
    • Possibly with wrapping it in remote request,
  • Storage of generated events in append-only data source with choice of underlying storage medium:
    • In memory list of events,
    • Local file,
    • Remote server,
  • Call to other services as a client,
  • Error handling in a consistent way,
  • Web interface to the service,
  • Logging,
  • Metrics and monitoring,
  • Testing,
  • Packaging,
  • ...

The overarching principle is to expose each feature as a mini-DSL and compose them using extensible-effects approach.

hevents's People

Contributors

abailly avatar aycanirican avatar

Stargazers

iho avatar Nhat Pham avatar Cqshinn avatar Marco Masotti avatar Beñat Espiña avatar  avatar Florian Klein avatar  avatar Compl Yue avatar Kit Langton avatar RJ Regenold avatar Ian Ross avatar Arian van Putten avatar Rune K. Svendsen avatar Oddvar Strømmen avatar Ivano Pagano avatar  avatar Paul Wilson avatar Hans Ott avatar Jim Kropa avatar Artur avatar  avatar Igor Pashev avatar  avatar David Landa avatar John avatar  avatar Samuel avatar Brendan Zabarauskas avatar Rahul Goma Phulore avatar Amar avatar Ronan Amicel avatar Jörn Gersdorf avatar Mathew Attlee avatar Damien Garaud avatar David Ed Mellum avatar Cassidy Holmgreen avatar Daniel Kahlenberg avatar Fabian Linzberger avatar timothy avatar Manuel Gómez avatar Tanaka de Silva avatar David Reaver avatar Luciano Leggieri avatar Julien Goux avatar Mark avatar Jean-Baptiste G. avatar

Watchers

 avatar  avatar Hristo Kochev avatar  avatar James Cloos avatar Jörn Gersdorf avatar David Reaver avatar ScalaWilliam avatar Kalin Maldzhanski avatar filip avatar  avatar  avatar  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.