Zero-dependency Typescript framework for data-driven applications.
⚠️ This is a work-in-progress. Use it with caution.
nesoi is a framework which makes it easy to implement data operations (crud, query, hidrate), jobs (synchronous or asynchronous), statecharts, queues, topics and controllers.
It does so through a "builder-schema-element" paradigm, where you use builders to declare schemas. Such schemas are used by the engine to build elements, which are runtime objects that perform actions inside transactions.
Builder-builds->Schema-configures->Element
This paradigm allows declaring modules, which groups schemas into developer-chosen scopes. Such modules are then used to declare apps, which are bundled ECMAScript (JS) applications.
modules/
module1/
...elements...
module2/
...elements...
apps/
app1
app2
When declaring an app, you plug adapters into the elements, which allows them to interact with external aspects of your application, such as databases and topics. This means the schemas are agnostic and plural, allowing adapters to be changed without friction.
A particular great feature of using adapters for data sources - buckets - is that queries can be performed accross different types of storage with a consistent syntax: NQL.
It offers a powerful engine for developing cloud or in-browser applications, and a robust plugin system for extending it's functionalities.
It also allows building and testing modules in isolation, then bundling them into different architectures.
- Hands-On Guide: A quick practical read with a lot of examples.
- Project Template: A minimal template for building a project with nesoi.
