Re: [abacus] MongoDB client


Jean-Sebastien Delfino
 

Hi Hristo,

This looks really good!

+1 to merging this as a new module in master, and continuing the work
there, as then we can all work together on creating the abstraction layer
that'll select between the Couch/Pouch/Mongo clients, and also on making
the in-memory caches select the proper backend like I think you were
suggesting the other day on our slack channel.

Once your module is there in master, I can also help add a build config
option to have some of the CI builds run the tests with it, if that helps.

Thanks!

- Jean-Sebastien

- Jean-Sebastien

On Sun, Jan 24, 2016 at 1:33 AM, Hristo Iliev <hsiliev(a)gmail.com> wrote:

Hi,

I now have the first version of a drop-in replacement client for MongoDB:

https://github.com/hsiliev/cf-abacus/commit/c29700aa996bf8169767f99ff3d815d4768a2608

The client still has some limitations:
* no support for ajax.rejectUnauthorized CouchDB option
* no support for skip_setup CouchDB option
* no support for keys, starting with $ (Mongo restriction)
* no support for custom backends (in-memory, lrudown cache, ...)

The eureka stub in my fork stores the port number with key different than
$ to overcome the Mongo restrictions.

The client was tested with 2.x and 3.x versions of Mongo. All unit-tests
pass without modification, and I started working on the integration tests.

We can add the mongo client as a new sub-module to:
* make the work on integrating and polishing the Mongo code more
transparent
* allow reporting of issues for the new code (bugs, improvements,
suggestions, requirements)
* start creating abstraction layer that can select one of the DB clients

What do you think?

Regards,
Hristo Iliev

Join cf-dev@lists.cloudfoundry.org to automatically receive all group messages.