To make PlayOrm more robust it would be very useful to add configuration for Astyanax's retry policy:
ColumnList<String> result = keyspace.prepareQuery(CF_STANDARD1)
.withRetryPolicy(new ExponentialBackoff(250, 5))
So for example in application.conf we could have:
nosql.cassandra.retryPolicy=none, ntimes, exponential, constant, boundedexponential
Alternatively we can make it simpler in the config and then decide which mode to use in the code:
We actually allow you to inject the astyanax client itself ;) so you can do what you want today ;) . That said, I am going to modify this requirement to say that for our default astyanax client that we create for you(when you don't inject your own), This requirement is now we want to change BootstrapImpl.createBestConfig such that we use reflection on the method names so they can chain the above methods and we automatically pass it through from the properties they give us to calling the correct methods. In this fashion, whatever properties astyanax adds would be automatically accessible so as we upgrade, the new functions are exposed without any work on our part.
NOTE: Check on issue #33 and make sure that works before this ticket is closed. Both 33 and 32 is really the same work that needs to be done but just perhaps different testing.
Default astyanax policy needs to be changed. Currently if i am using playframework plugin and restart cassandra then all previously opened connection will fail and present error page to user.
Astyanax has ExecuteWithFailover and RetryPolicy. It should be configured by default to retry connection before throwing error.