Introduction
Seneca, a microservices toolkit for Node.js.
Welcome to the Seneca Getting started guide! This guide assumes that you are already familiar with Node.js and how to build simple applications with it.
## What is Seneca?
Seneca lets you build message based microservice systems with ease. You don’t need to know where the other services are located, how many of them there are, or what they do. Everything external to your business logic - such as databases, caches and third-party integrations - is likewise hidden behind microservices.
This decoupling makes your system easy to continuously build and change. It works because Seneca has the following three core features:
- **Pattern matching**: Instead of fragile service discovery, you just let the world know what sort of messages you care about.
- **Transport independence**: You can send messages between services in many ways, all hidden from your business logic.
- **Componentisation**: Functionality is expressed as a set of plugins which can be composed together as microservices.
Messages are JSON objects. They can have any internal structure you like. Messages can be sent via HTTP/S, TCP, message queues, publish/subscribe services or any mechanism that moves bits around. From your perspective as the writer of a service, you just send messages out into the world. You don’t need to know which services receive them.
Then there are the messages you’d like to receive. You specify the property patterns that you care about, and Seneca (with a little configuration help) makes sure that you get any messages sent by other services that match those patterns. The patterns are very simple: just a list of key-value pairs that must match the top-level properties of the JSON message.
This guide will walk you through seneca principles and teach you how to build microservices with it.
Node.jsMicroservicesPattern matchingJSON messagesTransport independencePluginsMessage queues
Screenshots

Deployment
裸 Node.js 进程
适合按官方示例直接用 node 启动多个 Seneca 微服务进程进行本机开发、教学演示或简单部署。
Seneca HTTP listen/client
适合通过 seneca.listen()/seneca.client() 使用默认 HTTP 传输在服务之间发送 JSON 消息,便于调试和与 HTTP 工具集成。
Seneca TCP listen/client
适合在微服务之间使用内置 TCP 传输降低 HTTP 开销,并通过 pin 精确路由特定 action pattern。
Express + seneca-web 集成
适合将 Seneca 微服务能力安全地挂接到对外 Web API,由 Express 负责 HTTP 入口、Seneca 负责内部消息调用。
Docker
适合真实环境中管理多个 Seneca 服务进程,官方教程提到可用 Docker 这类工具保持多服务运行可控。
Details
Type Open-source software
License MIT
Last verified 2026-07-18
In solutions
后端框架 · 10 candidates →Ad slot 300 × 250 Ad
About the data
Stars / commit times sync automatically from the GitHub API; pricing and features are human-verified.