Tellier Benoit created MAILBOX-253:
--------------------------------------

             Summary: Provide the option to use Hystrix on top of all IO 
operations
                 Key: MAILBOX-253
                 URL: https://issues.apache.org/jira/browse/MAILBOX-253
             Project: James Mailbox
          Issue Type: New Feature
            Reporter: Tellier Benoit


Hystrix is a Netflix developped librairy for fault tolerance in distributed 
instances.

It provides automatic circuit breaking, meaning that your underlying database 
can not be overloaded, leading to a crash. (Same thing for ElasticSearch, by 
the way).

It also allows fallback if circuit is closed.

Finally, it allows live metrics on a dashboard.

And on top of that behaviour of hystrix is live configurable!

My point of view about this librairy, is that :

 - It will help sysadmins to diagnose problems and design for their load.
 - It will help us (James developpers) to identify hotspots in the code and 
maybe design better interaction with our underlying data source.
 - It will make James more resiliant to failures.

I conseder external IO to be :

 - MessageMapper and MailboxMapper from mailbox
 - Search indexes from mailbox
 - data-*
 - quotas from mailbox

I already have working implementations for all of those and strong mocked unit 
tests.

Acceptance criteria :

 - whatever implementation I choose for each component, I can enable hystrix 
wrapping by a single configuration line.
 - provide MPT testing on top of memory implementation
 - publish metrics to be accessible with a hystrix dashboard
( if I have time ) - provide a video of the dashboard 
 - modify documentation about configuration changes.

Blocking point :

 - Implementing Hystrix wrapping is trivial and non invasive
 - Implementing configuration should be straight forward
 - I will have troubbles with servlets (needed to publish metrics). I was 
thinking to jetty, but I have strictly no idea how to deploy it ( and their doc 
seems like a mess). Any help appreciated !





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org
For additional commands, e-mail: server-dev-h...@james.apache.org

Reply via email to