Fork me on GitHub
#clojure-europe
<
2020-12-17
>
dharrigan07:12:42

Good Morning!

thomas08:12:11

useless meeting about details that don't matter yet.

synthomat08:12:15

good morning!

otfrom09:12:56

panicked clients this morning

ordnungswidrig10:12:00

I read picknicking clients and I feel bad now.

😂 9
thomas10:12:06

Why would you feel bad if your clients are picknicking? (except for the fact that it might be a bit cold at the moment)

thomas11:12:43

technical question... I just have been reading about DynamoDB and the docs says it can't do joins... but I think I do need them (as I have entities that are related to each other). so not an option then?

ordnungswidrig22:12:06

I think that is misleading. You can join data or 3-tuples left and right in datomic it’s just no your RDB database join. If in doubt, then it’s rather cheap to do iterator over the resultset and query another n times etc. Depending on how you organize your code. With datomic ions you can even deploy your code “into” datomic (code near data) for ultra-fast access to the db.

thomas11:12:05

and go with a SQL or Graph DB instead?

thomas11:12:45

ps. we aren't talking lots of data... if we ever hit 1G i'd be surprised.

otfrom11:12:30

you'd have to do the joins in application code, or what usually happens is that you write out your data as you want to query it (do the joins up front)

otfrom11:12:37

this is how Cassandra works as well

thomas11:12:19

what about using lambda's that do the joining of the data? is that something that people do?

otfrom11:12:23

that would ruin the speed of the system

otfrom11:12:43

dynamo/cassie presume that storage is cheap and you know what you want to query

otfrom11:12:05

so you basically pre-materialise your views on write

mpenet11:12:21

But... 1G. you could also just use sqlite

otfrom11:12:37

I'd only use cassie/dynamo if the volume of writes you have would overwhelm a RDBMS that has to update various indices on writing

otfrom11:12:51

and @mpenet speaks wisdom (missed your 1GB thing)

mpenet11:12:59

Cassandra for 1G is a bit like using a nuke on a nail

6
otfrom11:12:06

and he improves my c* usage 🙂

otfrom11:12:24

if you wish to atomise the nail it is the right solution 😉

orestis12:12:34

@thomas You could probably look into Crux? AFAIK it now support light-weight backends (e.g. something JDBC based) so it might be a possibility for efficient queries.

val_waeselynck12:12:10

@thomas I concur with the others, you probably want to use a relational db 🙂 in my experience, trying to do relational stuff with a non-relational db tends to be much worse than setup hassle of any SQL database

borkdude12:12:11

Love me some postgres

thomas13:12:30

we are working with an external party to implement stuff. so if I introduce Crux or anything else fancy it will become just more complicated for them and thus cost more. so not really an option unfortunately.

mpenet13:12:51

sqlite is really good, if you're sure it's going to be "small data", just use that

mpenet13:12:15

a bit like postgresql "light"

otfrom13:12:20

sqlite is very, very good. I've been happy with where we've used it

synthomat13:12:36

is anyone using H2? is it somehow significantly different from sqlite?

synthomat13:12:51

appart from providing server-mode and, I believe, encryption?

mpenet13:12:20

not sure h2 support json fields, but I could be wrong

synthomat13:12:33

I always thought that it’s not possible to use more than one consumer for sqlite databases (e.g. application + developer tools) but apparently it’s also supported

synthomat13:12:57

documentations says it supports JSON

mpenet13:12:46

I think concurrent writers can be an issue with sqlite

mpenet13:12:51

not sure, it's been a while

dharrigan13:12:25

h2 is a very very good database

synthomat13:12:45

…but bound to jvm

dharrigan13:12:59

my go-to is PostgreSQL. Love me some PostgreSQL.

val_waeselynck13:12:37

My go-to is Datomic, but it's definitely not light nor well-known 😄

dharrigan13:12:39

I wonder could h2 be compiled using Graal

thomas13:12:05

I was thinking about Postgres as I know it and it is available on AWS.

thomas13:12:18

didn't see sqllite in the list.

mpenet13:12:21

ain't cheap iirc

mpenet13:12:32

but then again. for 1G

otfrom14:12:24

@thomas sqlite wouldn't have a server as such so wouldn't be an AWS service

slipset14:12:29

1gb? Duratom :)

thomas14:12:38

I use sqllite on the client for storing stuff temporarily at the moment as there was an Expo package for it

synthomat14:12:56

@thomas I don’t think sqlite can be operated as a service 😄

thomas15:12:32

no, it can't I figured that out as well... going with postgers at the moment.

synthomat15:12:56

there’s a saying “Nobody ever got fired for choosing Postgresql”

val_waeselynck15:12:19

Unfortunately that is also true of many technologies that suck ^^

3
ordnungswidrig22:12:38

crux on confluent cloud is quick and semi-easy to setup. runs on AWS and is not overly expensive. When you’re running the service on an EC2 host then you could try my experimental DynamoDB backend for crux transactions.

😎 3