You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
1) Lack of differentiation between 400 and 500 reduces visibility into service operation.
Services should differentiate between client errors and server errors. If the database becomes unavailable, you want the service to return 500 so that your alerting system can page the OPS team.
2) Clients treat 4xx and 5xx differently
Some clients will retry events when they receive a 500 and remove events when they receive a 400.
API Requests to rudder-server will only ever return a status code of 200 or 400.
rudder-server/gateway/gateway.go
Lines 323 to 329 in 995e9ca
This is problematic for at least 2 reasons
1) Lack of differentiation between 400 and 500 reduces visibility into service operation.
Services should differentiate between client errors and server errors. If the database becomes unavailable, you want the service to return 500 so that your alerting system can page the OPS team.
2) Clients treat 4xx and 5xx differently
Some clients will retry events when they receive a 500 and remove events when they receive a 400.
https://github.com/segmentio/analytics-android/blob/47f7341d81766b1b4a101ef69f491835d11f7532/analytics/src/main/java/com/segment/analytics/SegmentIntegration.java#L386-L394
The service must return 5xx on server error in order to minimize event loss during service outage.
The text was updated successfully, but these errors were encountered: