This repository demonstrates a small microservices setup built with Node.js, RabbitMQ, and Redis. The services run together using Docker Compose.
web: Browser-facing UI on http://localhost:3000api: HTTP API on http://localhost:4000api-worker: Background worker that stores results in Redisspecial-worker: Background worker that transforms queued jobsredis: Shared inmemory data storerabbitmq: Message broker with management UI on http://localhost:15672
-
Start everything from the repository root:
docker compose up --build -
Open the web app in your browser: http://localhost:3000. Sending a JSON message should result in the same message with reverted keys and values.
-
Optional: open the RabbitMQ management UI and log in with the default guest/guest credentials: http://localhost:15672
websends jobs to RabbitMQ.special-workerconsumes the job, processes it, and publishes the result back.api-workerstores the final result in Redis.apiexposes the HTTP endpoint used to retrieve stored job results.
- The containers are configured to talk to each other through Compose service names.
- If you change ports or broker settings, update
docker-compose.ymland the service environment variables together.
MIT