Spring River is an experimental, asynchronous queue-based microservices framework for Node.js (v1.0.36). It implements the Rapids/Rivers/Ponds pattern, where 'rivers' produce solutions and 'springs' generate needs, communicating via AMQP (e.g., RabbitMQ). Key differentiators include a simple bootstrap approach inspired by ZEIT's Micro, built-in predicate decorators for packet filtering, and environment-based AMQP address configuration. However, the project is marked as experimental and has not seen updates since 2017, making it unsuitable for production use.
npm install spring-riverNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Shows how to create a simple 'river' microservice that adds a solution to a packet and publishes it via AMQP.
Consider using an alternative like RapidsRivers (Python/Java) or a more modern Node.js microservices framework.
Ensure a RabbitMQ instance is running and ADDRESS is set correctly before starting services.
Use exact path: require('spring-river/predicates/forbid-keys')Do not attempt to require('spring-river/river') or require('spring-river/spring') in code.const forbidKeys = require('spring-river/predicates/forbid-keys');Start RabbitMQ (e.g., docker run -d --name rabbitmq -p 5672:5672 rabbitmq) and set ADDRESS=amqp://localhost before running npm start
For river: module.exports = (packet, publish) => { ... }. For spring: module.exports = (publish) => { ... }