Skip to content

Basic Setup

Atharva Raykar edited this page Dec 12, 2022 · 8 revisions

Goose helps scale an application by enabling background processing. Infra consists of 3 parts; ideally deployed separately:

Client

Goose client enqueues jobs to be performed asynchronously, at a scheduled time or periodically. Client is typically called from an application server.

The client serializes a function, it's args & other options like retry, schedule, cron-schedule, etc. & pushes/produces it to a message broker.

Message Broker

A pluggable store that facilitates transfers between client & worker.

Goose natively supports RabbitMQ & Redis. Users can integrate their implementation of a broker on top of Amazon SQS, Postgres, etc. as well.

Worker

Goose worker dequeues jobs & executes them. Enqueued functions must be in the resolvable of the worker for execution.

Depending on the broker, a worker will have to perform additional tasks including, but not limited to: enqueue scheduled & periodic jobs due for execution, retry failed jobs, replay orphan jobs, etc.


Next: Getting Started

Clone this wiki locally