What are your constraints on performance, volume of records, memory use, etc ?
EDIT
Apart from a normal Google search, try searching GitHub ...
(other internet search engines are available)
A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.