Lishy
An Express / Kafka / MongoDB framework for transactional processing of logic with full historisation of actions and data.
What is it?
Lish is a framework to organise your business logic into Typescript service classes. When an action is triggered, lish calls the code and records what has been changed.
Lish has adapters for HTTP / Express and for the Apache Kafke messaging system. Upon request, lish performs data validation and handles all exceptions that may occur during the
Features
- Typescript class system for business logic and persistent data
- Data Validation (via JSON schema and the class-validator framework)
- Transactional handling of the MongoDB documents with rollback on errors
- Historisation of all documents, enabling change tracking
- Backdated excution of logic in a time-machine (as data looked like at a particular time in the past)
- Fail-safe adapter to Express, making sure errors are correctly reported to the client
- ... many more
Quick start
Create your input and output message classes
This is the supposed input data, required for a service:
And here the MongoDB document that will be produced: