[ 
https://issues.apache.org/jira/browse/ACE-388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13783706#comment-13783706
 ] 

Angelo van der Sijpt commented on ACE-388:
------------------------------------------

As for 1), what about pushing the back-off mechanism down to the service level, 
in stead of applying it at the REST endpoint level? Each kind of transport can 
have its own mechanism for communicating back-off to the client, but at the 
service level, it would probably be sufficient to allow every service to throw 
an {{OverloadedException}} or something similar. This seems like a generic API 
to me, we can even create a {{BackoffAwareServlet}} base class to help with 
that.

For 2), I agree with the whiteboard style mechanism, but allow it to be 
specific: so,
- the {{DeploymentServlet}} still uses the {{DeploymentProvider}}, but this can 
throw {{OverloadException}}s, causing the servlet to send back the back-off 
header,
- the {{DeploymentProvider}} listens, whiteboard-style, to {{OverloadDetector}} 
services (or something by a better name), asking each "is it okay to handle 
this request for this user."

An alternative would be to register {{OverloadDetector}} services for each 
endpoint, tying it to the REST interface we have to the outside world. In my 
view, this makes less sense, since an overload is independent of the type of 
transport that is being used to communicate it.

> Add support to send "back-off time" headers.
> --------------------------------------------
>
>                 Key: ACE-388
>                 URL: https://issues.apache.org/jira/browse/ACE-388
>             Project: ACE
>          Issue Type: Task
>          Components: Deployment
>            Reporter: Marcel Offermans
>            Assignee: Angelo van der Sijpt
>
> Add support to send “back-off time” headers if the server is too busy. Make 
> the “come back later” time configurable.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to