Marble.js
Marble.js is a functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.
Last updated
Marble.js is a functional reactive Node.js framework for building server-side applications, based on TypeScript and RxJS.
Last updated
The core concept of Marble.js assumes that almost everything is a stream. The main building block of the whole framework is an Effect, which is just a function that returns a stream of events. With the big popularity of Observable, you can create a referential transparent program specification made up of functions that may produce side effects like network, logging, database access, etc. Using its monadic nature we can map I/O operations over effects and flat them to bring in other sequences of operations. RxJS is used as a hammer for expressing asynchronous flow with monadic manner.
For those who are curious about the framework name - it comes from a popular way of visually expressing the time-based behavior of event streams, aka marble diagrams. This kind of domain-specific language is a popular way of testing asynchronous streams, especially in RxJS environments.
If you would like to get a quick glimpse of a simple RESTful API built with Marble.js, visit the following link:
Marble.js doesn't operate only over basic protocol but can be used also for general MDA (Message-Driven Architecture) solutions, including , or , where the multi-event nature fits best. Don't be scared of the complexity and abstractions β Marble.js framework, in general, is incredibly simple. For more details about its specifics, please visit the next chapters that will guide you through the framework environment and implementation details.
π If you have ever worked with libraries like , or other libraries that leverage functional reactive paradigm, you will feel at home.
π If you don't have any experience with functional reactive programming, we strongly recommend to gain some basic overview first with or with written by .