Hey riak-users,

I've begun adding Riak 1.2-related features to the Python client. As I am
doing so, I am reminded about how much technical debt exists in the client,
as discussed at length previously on Github and this mailing list. Because
I know some of you are using the client in production or as a component of
another library, I'd like to assess what risks there are in removing or
changing certain features.  Here's my plan:

   1. Remove all the set_r/get_r-style methods for quorums. Instead,
   RiakBucket will have custom object-properties for these that let you set
   the corresponding quorums in the bucket-properties, but will not be the
   sort of cascading-preference behavior that it is currently. If you want to
   change a quorum when fetching, storing, or deleting a key, you can pass it
   with keyword arguments to the appropriate method.
   2. Remove the edge-case-ridden ConnectionManager for a pair of resource
   pools for each protocol, like what is available in the Ruby client. Access
   to a connection would be granted via a 'with' statement, naturally, and the
   protocol selected would be based on the stated preference of the user, or
   on whether the transport supports the given feature. For example, stats
   would always use HTTP. We could also take this opportunity to add
   error-sensitive host selection and automatic retries to the client.
   3. Merge the RiakSearch class into the RiakClient class and push some of
   its functionality down into the connection classes.

I intend to make the Python client ready for the 1.2 release without these
refactorings, but I would greatly appreciate your feedback before starting
the above items.

-- 
Sean Cribbs <s...@basho.com>
Software Engineer
Basho Technologies, Inc.
http://basho.com/
_______________________________________________
riak-users mailing list
riak-users@lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

Reply via email to