Skip to content
This repository has been archived by the owner on Apr 9, 2024. It is now read-only.
/ neptunium Public archive

Small CQRS / Event Sourcing framework in JavaScript.

License

Notifications You must be signed in to change notification settings

cucumber-ltd/neptunium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Neptunium

Small CQRS / Event Sourcing framework in JavaScript.

Like Plutonium, Neptunium has also been extracted from Cucumber Pro.

Neptunium differs from Plutonium in that it is immediately consistent when it's using in-memory messaging. (Read models are immediately consistent after dispatching a command). Implementation-wise this is possible because Neptunium doesn't use streams or process.nextTick for messaging.

Immediate consistency makes it easier to write fast, non-flickering tests.

An example of how to use Neptunium is in Reward - a crowd-sourcing platform for GitHub issues. (Reward's tests implicitly test Neptunium).

Alternative implementations of messaging based on Rabbit MQ or Kafka could be implemented, allowing Neptunium apps to run distributed (for better scalability). In this case it would be eventually consistent rather than immediately consistent, but the semantics should remain the same as long as the flow of information is unidirectional in applications built on the framework:

UI -> Commands -> Aggregates -> Projectors -> Read models -> Signals -> UI

About

Small CQRS / Event Sourcing framework in JavaScript.

Resources

License

Stars

Watchers

Forks

Packages

No packages published