The application consists of 3 processes:
Use the PROCESS_TYPE environment variable to select the process to be run.
$ PROCESS_TYPE=web NODE_ENV=production npm startThe process is listening on twitter for keywords and sends the tweets to a RabbitMQ queue.
NODE_ENV('development' | 'production'): whendevelopment, it uses dotenv, to read the local.envfile, that's the only differenceLOGGER_LEVEL('error' | 'warn' | 'info' | 'verbose' | 'debug' | 'silly'), default:infoLOGGER_ENABLED('true' | 'false'), default:trueTWITTER_CONSUMER_KEYTWITTER_CONSUMER_SECRETTWITTER_ACCESS_TOKEN_KEYTWITTER_ACCESS_TOKEN_SECRETTWITTER_TRACK: comma separated keywords to track, eg.nodejs,node.js,risingstack,microservice,micro-serviceRABBITMQ_URI
The process is listening on the RabbitMQ queue and saves the tweets to Redis and removes old ones.
NODE_ENV('development' | 'production'): whendevelopment, it uses dotenv, to read the local.envfile, that's the only differenceLOGGER_LEVEL('error' | 'warn' | 'info' | 'verbose' | 'debug' | 'silly'), default:infoLOGGER_ENABLED('true' | 'false'), default:trueRABBITMQ_URIREDIS_URIREDIS_DATA_RETENTION_IN_MS, default:86400000(1 day)
The process is serving an HTTP API to return the tweets.
GET /api/v1/tweets?limit&offset
NODE_ENV('development' | 'production'): whendevelopment, it uses dotenv, to read the local.envfile, that's the only differenceLOGGER_LEVEL('error' | 'warn' | 'info' | 'verbose' | 'debug' | 'silly'), default:infoLOGGER_ENABLED('true' | 'false'), default:trueREDIS_URIPORT