Seneca is a mature Node.js microservices framework designed to help organize application business logic through a pattern-matching approach to message passing. Currently at stable version 3.38.0, its release cadence is active but irregular, with a focus on stability and a smaller core. Key differentiators include its flexible pattern-matching for defining commands, transport independence that abstracts message delivery, and a robust ecosystem of plugins for common microservice concerns like data storage, user management, and distributed logic. The framework emphasizes breaking down applications into 'stuff that happens' rather than strict data models, providing a flexible toolkit for building Minimum Viable Products and complex distributed systems. It supports Node.js versions 10 and above and ships with TypeScript types.
npm install senecaVerified import paths — ran on the pinned version, not inferred.
This example demonstrates defining and loading plugins, setting up HTTP listeners for microservices, and client-side message dispatching with pattern matching and priority handling.
Identify missing plugin functionality, install the corresponding `seneca-` plugin from npm, and add `seneca.use('plugin-name')` to your Seneca instance initialization.To restore entity functionality, install `seneca-entity` (`npm install seneca-entity`) and explicitly load it with `seneca.use('entity')`.For pretty logging, install `seneca-legacy-logger` and use it. For custom loggers, ensure they are compatible with JSON input or update them accordingly.
Review your action callback implementations to standardize on an error-first or error-omitting style for consistency, especially when integrating with new plugins or migrating old code.
It is highly recommended to upgrade to the latest stable 3.x version of Seneca to benefit from critical memory leak and stability fixes.
Install the plugin via `npm install seneca-entity` and add `seneca.use('entity')` to your Seneca instance initialization.Verify the exact pattern used in `seneca.act()` matches an existing `seneca.add()` definition. Ensure all necessary plugins defining actions are loaded using `seneca.use()`, and check that message properties align with the pattern's requirements.
If using CommonJS, ensure you're using `const Seneca = require('seneca'); const seneca = Seneca();`. If using ESM, ensure `import Seneca from 'seneca'; const seneca = Seneca();` and that your Node.js environment is configured for ESM.Ensure that no other applications or services are running on the desired port. If running multiple Seneca instances, configure each to use a unique port for its listeners, or ensure previous processes are properly shut down before starting new ones.
No dependency data recorded yet.