- Simple project I created with references and examples to learn about message queues and publisher/subscriber pattern with different technologies.
- RabbitMQ Message Queue Example
- RabbitMQ PubSub Example
- Apache Kafka Message Queue Example
- Apache Kafka PubSub Example
- Observer Pattern (GoF) Example
- BullMQ Message Queue Example
- AWS SQS Example using LocalStack
- AWS SNS Example using LocalStack
- AWS S3 Example using LocalStack
- AWS Dynamodb Example using LocalStack
- Install Bun: https://bun.sh/docs/installation
- Install LocalStack: https://docs.localstack.cloud/getting-started/installation/
- Install Docker & Docker-Compose: https://docs.docker.com/engine/install/
a. Install dependencies & up docker-compose
sudo chmod +x setup.sh && ./setup.shb. To see RabbitMQ Management UI, go to: http://localhost:15672
- Username:
guest - Password:
guest
c. To see LocalStack UI, go to: https://app.localstack.cloud/inst/default/status
- Credits: https://youtu.be/ioYkXh8NhKc
- Run script
bun run observer-pattern- Run producer (send message)
bun run rabbitmq-queue-producer- Run consumer (consume message)
bun run rabbitmq-queue-consumer- Run subscriber to stay listening... (receive notifications in subscriber)
bun run rabbitmq-pubsub-subscriber- Run publish (publish message to subscribers consume)
bun run rabbitmq-pubsub-publisher- Run producer (send messages)
bun run apache-kafka-queue-producer- Run consumer (consume messages)
bun run apache-kafka-queue-consumer- Run publisher (send messages to topic x)
bun run apache-kafka-pubsub-publisher- Run subscriber (subscribers consume messages from topic x)
bun run apache-kafka-pubsub-subscriber- Run job
bun run bullmq-mq-job- Run worker
bun run bullmq-mq-worker- Prerequisites
- Install AWS CLI: https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html
- Verify your AWS Credentials:
aws --version export AWS_ACCESS_KEY_ID="test" export AWS_SECRET_ACCESS_KEY="test" export AWS_DEFAULT_REGION="us-east-1" aws configure --profile localstack aws configure list
- Creating QUEUE
aws sqs create-queue --endpoint-url http://localhost:4566 --queue-name cli-test-queue --profile localstack- Listing QUEUEs
aws sqs list-queues --endpoint-url http://localhost:4566 --profile localstack- Sending Messages
aws sqs send-message --endpoint-url http://localhost:4566 --queue-url http://localhost:4566/000000000000/cli-test-queue --message-body "Testing Message" --message-attributes file://./src/aws-sqs/message.json --profile localstack- Receiving Messages
aws sqs receive-message --endpoint-url http://localhost:4566 --queue-url http://localhost:4566/000000000000/cli-test-queue --attribute-names All --message-attribute-names All --profile localstack- Run example
bun run aws-sqs-example- Run example
bun run aws-sns-example- Run example
bun run aws-s3-example- Run example
bun run aws-dynamodb-exampleCopyright (c) June 2024-present, Alex Galhardo


