<!-- Release notes generated using configuration in .github/release.yml at v0.4.0 -->
This is an important release with new concurrency APIs to compose more advanced applications powered by Dispatch.
The release also includes new default integrations for errors raised by popular services like Slack and OpenAI, so dispatch functions can automatically handle retries when executing requests to those APIs.
What's Changed
New features
* Concurrency primitives: any, all, race by chriso in https://github.com/stealthrocket/dispatch-py/pull/131
* Remote endpoints by chriso in https://github.com/stealthrocket/dispatch-py/pull/134
* Slack integration by chriso in https://github.com/stealthrocket/dispatch-py/pull/132
* OpenAI integration by chriso in https://github.com/stealthrocket/dispatch-py/pull/133
Other changes
* Fix registration of synchronous functions by chriso in https://github.com/stealthrocket/dispatch-py/pull/129
* mock server: show more info when a call fails by chriso in https://github.com/stealthrocket/dispatch-py/pull/128
* Promote docopt dependency by chriso in https://github.com/stealthrocket/dispatch-py/pull/130
* Promote httpx dependency by chriso in https://github.com/stealthrocket/dispatch-py/pull/137
**Full Changelog**: https://github.com/stealthrocket/dispatch-py/compare/v0.3.0...v0.4.0