Non-blocking asynchronous Sentry transport for Neos Flow applications.
This package extends PunktDe.Sentry.Neos with a asynchronous transport layer that prevents Sentry logging from impacting application response times. By using Guzzle's async capabilities in a fire-and-forget manner, error reporting happens in the background without blocking the main request.
When logging multiple errors to Sentry in a single request, the default synchronous transport can significantly slow down your application. Each event waits for a response from the Sentry server before continuing. This package solves that problem by:
- Non-blocking requests: Events are sent asynchronously without waiting for server responses
- Fire-and-forget: Your application continues immediately after triggering the send
- Maintained compatibility: Preserves all Sentry features including rate limiting and error handling
- Neos Flow 8.x - 9.x
- PunktDe.Sentry.Neos ^4.0
- Guzzle HTTP client (typically already available in Flow/Neos)
composer require medienreaktor/sentryJust configure the environment variables for the package. The SENTRY_DSN is needed. That's it! All other PunktDe.Sentry.Flow settings work as usual.
The GuzzleAsyncTransport implements Sentry's TransportInterface and:
- Serializes events using Sentry's standard payload serializer
- Sends HTTP requests via Guzzle's
postAsync()method - Triggers the request with
wait(false)to ensure it's sent without blocking - Handles responses and errors asynchronously in background callbacks
- Uses lazy initialization to retrieve Sentry options from the SDK
- Preserves all standard Sentry features (rate limiting, profiling, etc.)
- Logs successes and failures for debugging purposes
- Gracefully handles errors in fire-and-forget mode
This package is open source software. For license information, please see the LICENSE file.
Built by Medienreaktor to optimize Sentry integration.
Based on PunktDe.Sentry.Neos by punkt.de.