Phases of Database Love

Infatuation

This database is just what I’ve been looking for! It has all the features I need! It’s open source, actively maintained, and the documentation is so extensive!

I can’t wait to put it into production! <3 <3 <3

Self Doubt

Hm. Well, the first approach to building my app with this thing didn’t quite go as I’d expected, but that’s just because I didn’t fully understand its advanced model. There sure is a lot of documentation, but I don’t understand most of it. Some people in the IRC channel scolded me for thinking in terms of queries, and they’re probably right.

I’ve checked out some books, and I’m reading a lot about the finer points on the internet. Everyone using this thing is really smart, so I’m sure they’ve thought this through.

Now that I am starting to get it, though, I see that I was going about my app all wrong. Once I rewrite it in the complete opposite shape I had before, it’ll be great.

Codependency

It’s in production. My app is holding up, but it takes a few more servers than I would’ve hoped. At this point, I’ve worked around so many of this thing’s issues that I can’t easily migrate off of it, but each new version that comes out seems to make things a little better.

A few of the APIs are kinda confusing, but I know how they work, and I’ve mostly forgotten SQL in favor of its fancy DSL thing. I can kind of work out what the crash dumps mean now, so that’s good.

This is fine. I am ok with how things are proceeding.

Rage

Fuck this thing. I’m spending all my money on servers and all my time on debugging bullshit. I never had this problem with my last database. Someone remind me what the fuck was so bad about SQL again? This “community” here is just a bunch of neckbeards beating up on hapless n00bs, and I can’t figure out which group is more annoying. The docs are garbage, they’re a year out of date, and no one has time to edit them, because the first team (which has fucked off doing YET ANOTHER DATABASE now! in HASKELL because apparently erlang isn’t exotic enough these days!) was so overly enthusiastic about their fucking math project that they wrote more about this ugly baby than the combined works of shakespeare and the gutenberg bible put together, so the docs are highly available, not even remotely consistent, and completely fucking partitioned. Issues in GitHub say to post them into the project Jira, and bugs in Jira are closed for being assigned to the wrong Story, so I spend half my time tracking down a core maintainer to send a patch to. I’m running a cobbled-together patch-floating garbage barge that sinks every time there’s an update.

Fuck this thing. Never again. I’d stop maintaining it and rebuild it all from scratch if I could afford the downtime.

Familial Acceptance

Ok. I’ve rewritten half the app as an SOA, and I’m just storing data in the database now. It’s still the main source of truth, but the records all get piped over to a SQL relational database that I can actually run queries against. It has one or two really nice features, and I’m using those. As long as you ignore most of the API, and never read the docs, it’s not so bad.

Kinda like that one weird uncle who gets too drunk and rants about the second amendment, but is ok as long as you just meet in public and keep it short. We all have our faults. Uncle Bob’s a pretty nice guy, overall. Helped me build a gokart once.