All Projects → jorge07 → hollywood

jorge07 / hollywood

Licence: other
Hollywood-js is a Framework for building very modular and high scalable server side applications following CQRS (Command Query Responsibility Segregation) and enforcing IoC.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to hollywood

EcommerceDDD
Experimental full-stack application using Domain-Driven Design, CQRS, and Event Sourcing.
Stars: ✭ 178 (+790%)
Mutual labels:  ddd, event-sourcing
es-emergency-call
Struggling with CQRS, A+ES, DDD? We can help you!
Stars: ✭ 26 (+30%)
Mutual labels:  ddd, event-sourcing
slack-community
Docs related to DDD-CQRS-ES Discord Community
Stars: ✭ 58 (+190%)
Mutual labels:  ddd, event-sourcing
eventsourcing-java-example
A simplified (in memory) example of Event Sourcing implementation for banking domain.
Stars: ✭ 83 (+315%)
Mutual labels:  ddd, event-sourcing
eventuous
Minimalistic Event Sourcing library for .NET
Stars: ✭ 236 (+1080%)
Mutual labels:  ddd, event-sourcing
CleanArchitecture
Clean Architecture Solution for .NET 5
Stars: ✭ 18 (-10%)
Mutual labels:  ddd, event-sourcing
cqrs
A lightweight, opinionated CQRS and event sourcing framework targeting serverless architectures.
Stars: ✭ 155 (+675%)
Mutual labels:  ddd, event-sourcing
Wolkenkit Boards
wolkenkit-boards is a team collaboration application.
Stars: ✭ 236 (+1080%)
Mutual labels:  ddd, event-sourcing
awesome-talks
Awesome talks about event sourcing, cqrs, microservices, funcional programming ...
Stars: ✭ 23 (+15%)
Mutual labels:  ddd, event-sourcing
e-shop
Sample Spring Cloud microservices e-shop.
Stars: ✭ 48 (+140%)
Mutual labels:  ddd, event-sourcing
tactical-ddd
lightweight helpers that I find myself implementing over and over again related to DDD/Event Sourcing tactical patterns, such as Value Objects, Entities, AggregateRoots, EntityIds etc...
Stars: ✭ 33 (+65%)
Mutual labels:  ddd, event-sourcing
food-ordering-demo
Demo application focusing on the Food Ordering domain - Used in our video series
Stars: ✭ 28 (+40%)
Mutual labels:  ddd, event-sourcing
Proophessor Do
prooph components in action
Stars: ✭ 247 (+1135%)
Mutual labels:  ddd, event-sourcing
backend
Ergonode backend repository
Stars: ✭ 100 (+400%)
Mutual labels:  ddd, event-sourcing
Event Sourcing
Provides basic functionality for event sourced aggregates.
Stars: ✭ 242 (+1110%)
Mutual labels:  ddd, event-sourcing
wolkenkit-todomvc
wolkenkit-todomvc is a todo application.
Stars: ✭ 15 (-25%)
Mutual labels:  ddd, event-sourcing
Digital Restaurant
DDD. Event sourcing. CQRS. REST. Modular. Microservices. Kotlin. Spring. Axon platform. Apache Kafka. RabbitMQ
Stars: ✭ 222 (+1010%)
Mutual labels:  ddd, event-sourcing
Dotnet New Caju
Learn Clean Architecture with .NET Core 3.0 🔥
Stars: ✭ 228 (+1040%)
Mutual labels:  ddd, event-sourcing
muon-java
Muon Core for the JVM. APIs and Microservices taken to the next level
Stars: ✭ 18 (-10%)
Mutual labels:  ddd, event-sourcing
firebase-event-sourcing
Event Sourcing + CQRS + DDD for Firebase
Stars: ✭ 14 (-30%)
Mutual labels:  ddd, event-sourcing

Hollywood

Build Status Coverage Status NPM Version NPM Downloads Install Size semantic-release: angular

Hollywood-js is a Framework for building very modular and high scalable server side applications following CQRS (Command Query Responsibility Segregation) and enforcing IoC.

It provides a Bounded Context oriented architecture, enforcing isolation and event driven communication between them. Hollywood-js it's strongly CQRS structured, allowing you to define or not a DDD / Clean Architecture project.

Includes advanced Event Sourcing capabilities like Event Store abstractions, Event Store Snapshots, Projections and Event Bus (Listeners and Subscribers).

Documentation

Documentation about Hollywood, DDD and EventSourcing available [here] (https://jorge07.github.io/hollywood/)

Documentation still a wip

Installation

NPM:

npm install hollywood-js

Yarn:

yarn add hollywood-js

CQRS Framework with Event Sourcing support.

Features:

  • Dependency Injection (Built around Inversify).
    • Module hierarchy for Bounded Context isolation.
  • DDD toolbox
    • Event Driven
      • Support for different event streams
    • In Memory implementations for testing
    • AggregateRoot and EventSourced abstractions
  • Event Store
    • Event Store decoupled from storage implementation thanks to DBAL (Database Abstraction Layer)
    • In Memory Event Store DBAL implementations for testing
    • Configurable SnapshotStore support.
    • In Memory Snapshot DBAL implementation for testing
    • Built in Event Bus
  • Command and Query Bus
    • Command and Query handlers autowiring
    • Middlewares support for Command and Query bus
  • Libraries should NOT log, I don't log, I throw Errors.
  • Not a server framework but tested with express and fastify (this last one the one I recommend, see /examples).

Basic Usage

import ModuleContext from "./ModuleContext";
import Kernel from "./Kernel";
import {inject} from "inversify";

const parameters = new Map([
  ['hello.style', 'hey']
]);

class Hey {
  constructor(@inject('hello.style') private readonly style: string) {}

  hello(): string {
    return this.style
  }
}

const MainModule = new ModuleContext({
  services: [
    ['hey', {instance: Hey}]
  ]
})

const kernel = new Kernel('dev', true, parameters, MainModule);

kernel.container.get<Hey>('key').hello() // 'key'

Module dependencies

import ModuleContext from "./ModuleContext";
import Kernel from "./Kernel";
import {inject} from "inversify";

const parameters = new Map([
  ['hello.style', 'hey']
]);

class Hey {
  constructor(@inject('hello.style') private readonly style: string) {}

  hello(): string {
    return this.style
  }
}

const HeyModule = new ModuleContext({
  services: [
    ['hey', {instance: Hey}]
  ]
})

class Person {
    constructor(@inject('hey') private readonly hey: Hey) {}

    sayHello(): string {
        return this.key.hello()
    }
}

const PersonModule = new ModuleContext({
  services: [
    ['person', {instance: Person}]
  ],
  modules: [HeyModule]
})
const kernel = new Kernel('dev', true, parameters, MainModule);

kernel.container.get<Person>('person').sayHello() // 'key'
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].