@sparksnetwork/sparks-dispatch
v1.0.12
Published
> Messages come in, messages go out
Downloads
39
Readme
Dispatch
Messages come in, messages go out
The dispatch program is designed to front all externally driven changes to the Sparks platform.
What is an externally driven change? A user who wants to do something. They (or more precisely our website) issues a command that arrives at the dispatcher. The dispatcher then:
- Validates the message using a schema from
sparks-schemas
- Authorizes that the user is allowed to make this change
- Puts the message onto a message bus for services to take actions
- Returns a response that says yea or ney
At the return stage the user (well software) only knows that we accepted the message. Any actual changes happen further down.
Moving parts:
- index.ts: In / validate / auth / dispatch / respond
- queue.ts: In, currently reads firebase queue for messages
- validate.ts: Validates the command in the message using
sparks-schemas
- auth.ts: Auth, checks a whole bunch of shit
- dispatch.ts: Out, adds the message to kinesis
Environment:
The following variables are required:
FIREBASE_DATABASE_URL: the database url
KINESIS_STREAM: name of kinesis stream
Running
To run it you need a firebase and a firebase credentials.json file:
npm install
npm start