abstract-log
An abstract interface to build data processing applications on a log-based architecture.

The idea would be to have implementations that would allow reading/writing to files, databases, kafka, redis, etc.
Status
Highly experimental.
Usage
const memLog = require('abstract-log/mem-log');
let log = memLog();
let offset = await log.append({ msg: 'hello world' });
let data = await log.get(offset);
let offset = 0;
log.createReadStream(offset)
.on('data', console.log);
const arrayToStream = require('array-to-stream');
arrayToStream([0, 1, 2, 3, 4].map((i) => ({ msg: `hello world ${i}` })))
.pipe(log.createWriteStream());
Docs
WIP. Currently - See tests.