You are reading content from Scuttlebutt
@mikey %meil3xW/YT4WJ26mAsmLVHKxxh2rbtbM7pyvpA1N4v8=.sha256

consensus-free scuttlestack :sunrise: :pray: :notes:

2018-12-17

me, @piet, @matt, and @ben met up on mumble to chat about follower flumes.

from @matt's invocation:

I have an idea described as part of my "Why it is so hard to build SSB apps" essay, that there could be a possibility of having clients that read the offset.log file directly, and generated their own indexes. This would be read-only. If you wanted to write, you would check to see if there was any sbot running, and if so, write via that (otherwise, start a minimal write/replication only one).

here's a dat page with the notes and audio recording:

dat://consensus-free-scuttlestack-2018-12-17.hashbase.io

:heart:

#sunrise-choir #flume #ssb-clients

User has not chosen to be hosted publicly
@Daan (deprecated) %T8zzXYNJYaTIcUh9/9vdPXIRSo8EibTGFWwWAyUQVfs=.sha256

@dinosaur I just skimmed the call notes, thanks for posting them!

I had no idea that @Piet had already done some profiling using sqlite, it looks really promising. Even if sqlite was "only" as fast as flumedb overall, I'd still say it's preferrable to use it instead. Getting into ssb is complicated enough as it is. just reading the sbot docs sends you down a rabbit hole:

  • "Scuttlebot behaves just like a Kappa Architecture DB"

clicks on link

  • "Kappa Architecture is a simplification of Lambda Architecture."

Now, I haven't been doing any software engineering since undergrad, but I guess you get the point. ssb is different in concept to much of modern software (that people are used to) and that's gonna be a hurdle already. Better to keep the implementation details (DB backend) as conservative as possible. Of course, the protocol should be decoupled from that.

@Daan (deprecated) %tySZSEWXPTBxvb0LWwhBxzXKBZjOSx7NwSQGn+EXrh4=.sha256

for my own reference: the thread about sqlite experimentation:

%+Cd1qTx...

@mikey %EmQoTCInQqULRWtwfoJjxKukAuwoxPBs6hZos8HN8xk=.sha256

@Daan @Daan: as part of the #sunrise-choir, @Piet has been implementing #flumedb in Rust, as i think it is a good abstraction for Scuttlebutt, especially if we combine it with sqlite to replace our existing custom query system.

for context, flume has two concepts, flume "logs" and flume "views". a flume "log" is an append-only store where you can only add messages and get them back by "id" (which depends on the log). in Scuttlebutt, we use a a log.offset file as our log, where messages are appended to this file and the id of a message is the offset from the beginning of the file. a flume "view" is similar to a materialized view in other databases, where the view is able to listen to each new message (once and only once, as guaranteed by flume), use each message to populate a store of indexed data, and then use the indexed data to answer questions on-demand. currently, Scuttlebutt is mostly based on ssb-backlinks and ssb-query, which use leveldb under the hood.

last week @Piet and i met with @Matt and @Mix to understand the minimum functionality that the #ssb-clients need in order to use our rusty flume. after that call, since Piet had already implemented the a memory log and an offset log, we decided to prioritize implementing a flume view using sqlite, which could replace ssb-backlinks and ssb-query and all the other bits.

so yeah, i agree we should keep our abstractions as conservative as possible, but i think flume is the correct abstraction, as conceptually Scuttlebutt is an append-only log of messages that you can ask questions to. i think using only sqlite would be a negative regression, but using sqlite to replace our custom query system is rad. :cake:

User has not chosen to be hosted publicly
@Daan Patchwork %fBY0QTgMCCi9UpQQEGgXTjXS6JFmbN/lDkonywUCOgk=.sha256

Thank you for explaining @dinosaur. I'm certain the next incarnation of flume/sbot will be rad, now even more so after seeing that sqlite and such are not excluded out of principle or anything. :smiley:
I had already been wondering for a while why the ssb ecosystem feels so home-grown, and if I'm the only one who thinks that might be suboptimal. Turns out, the discussion was happening already, I just didn't see it. So now I'm extra happy, and even more excited for the next round of ssb innovation. :tada:

@Christian Bundy %fUBdywT7hONQjkhmWwZDBOIG2R4uYOKb5j5DEAR9dog=.sha256
Voted # consensus-free scuttlestack :sunrise: :pray: :notes: _2018-12-17_ me, [
@Anders %OSXJY8VqRL2htcQK7t1HTiy2Pojo30VJHFSNJCIeEdI=.sha256
Voted # consensus-free scuttlestack :sunrise: :pray: :notes: _2018-12-17_ me, [
@mikey %0ZHnRFimJgcwkqc0spbYPYK6DVsDqhnAL0wXCvirzUo=.sha256

@Piet posted a relevant dev diary entry meow: %QRQaadQ... :smiley_cat: :sunrise: :rainbow: :sparkling_heart:

@Dominic %ZgC688d/LDn+BLVQYysjue/tMnXrGtT11odwvcxQqmg=.sha256

@Daan I really hate the term "Kappa Architecture" ... naming your thing after a greek letter. If possible a name should include some hints that at least makes sense once you understand it.

Join Scuttlebutt now