-
Notifications
You must be signed in to change notification settings - Fork 11
Basic Setup
Goose helps scale an application by enabling background processing. Infra consists of 3 parts; ideally deployed separately:
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.
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.
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 & cron jobs due for execution, retry failed jobs, replay orphan jobs, etc.
Next: Getting Started
Home | Getting Started | RabbitMQ | Redis | Error Handling | Monitoring | Production Readiness | Troubleshooting
Need help? Open an issue or ping us on #goose @Clojurians slack.