clojure-europe

For people in Europe... or elsewhere... UGT https://indieweb.org/Universal_Greeting_Time
dharrigan 2020-12-17T07:06:42.470200Z

Good Morning!

slipset 2020-12-17T07:16:28.470400Z

Morning

ordnungswidrig 2020-12-17T07:54:30.470800Z

Aloha!

plexus 2020-12-17T08:08:22.471300Z

Morning!

mpenet 2020-12-17T08:10:59.471500Z

howdy

orestis 2020-12-17T08:18:59.471700Z

Heyooo

thomas 2020-12-17T08:31:41.471900Z

morning

thomas 2020-12-17T08:32:11.472400Z

useless meeting about details that don't matter yet.

synthomat 2020-12-17T08:48:15.472600Z

good morning!

simongray 2020-12-17T08:51:42.473200Z

’morning

2020-12-17T09:58:50.473400Z

morning

2020-12-17T09:58:56.473600Z

panicked clients this morning

borkdude 2020-12-17T10:11:13.473800Z

Morning

ordnungswidrig 2020-12-17T10:27:00.474100Z

I read picknicking clients and I feel bad now.

3😂
thomas 2020-12-17T10:33:06.475Z

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

thomas 2020-12-17T11:21:43.479800Z

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?

thomas 2020-12-17T11:22:05.480300Z

and go with a SQL or Graph DB instead?

thomas 2020-12-17T11:22:45.481100Z

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

2020-12-17T11:30:30.481600Z

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)

2020-12-17T11:30:37.481800Z

this is how Cassandra works as well

val_waeselynck 2020-12-17T11:31:18.482300Z

'noon

thomas 2020-12-17T11:37:19.483100Z

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

2020-12-17T11:40:23.483300Z

that would ruin the speed of the system

2020-12-17T11:40:43.483700Z

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

2020-12-17T11:41:05.484Z

so you basically pre-materialise your views on write

thomas 2020-12-17T11:43:45.484200Z

ok, ta

mpenet 2020-12-17T11:45:21.486100Z

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

2020-12-17T11:45:37.486600Z

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

2020-12-17T11:45:51.487400Z

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

mpenet 2020-12-17T11:45:59.487800Z

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

2
2020-12-17T11:46:06.488100Z

and he improves my c* usage 🙂

2020-12-17T11:46:24.488400Z

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

orestis 2020-12-17T12:21:34.490Z

@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_waeselynck 2020-12-17T12:52:10.491200Z

@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

borkdude 2020-12-17T12:53:11.491400Z

Love me some postgres

thomas 2020-12-17T13:28:30.493400Z

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.

mpenet 2020-12-17T13:32:51.494Z

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

mpenet 2020-12-17T13:33:15.494300Z

a bit like postgresql "light"

2020-12-17T13:34:20.495Z

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

synthomat 2020-12-17T13:34:36.495400Z

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

synthomat 2020-12-17T13:34:51.495900Z

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

mpenet 2020-12-17T13:35:20.496600Z

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

synthomat 2020-12-17T13:35:33.496900Z

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

synthomat 2020-12-17T13:35:57.497100Z

documentations says it supports JSON

mpenet 2020-12-17T13:37:46.497400Z

I think concurrent writers can be an issue with sqlite

mpenet 2020-12-17T13:37:51.497600Z

not sure, it's been a while

dharrigan 2020-12-17T13:38:25.497800Z

h2 is a very very good database

synthomat 2020-12-17T13:38:45.498100Z

…but bound to jvm

dharrigan 2020-12-17T13:38:49.498300Z

agreed

dharrigan 2020-12-17T13:38:59.498600Z

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

val_waeselynck 2020-12-17T13:39:37.499400Z

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

dharrigan 2020-12-17T13:39:39.499500Z

I wonder could h2 be compiled using Graal

thomas 2020-12-17T13:57:05.000200Z

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

thomas 2020-12-17T13:57:18.000600Z

didn't see sqllite in the list.

mpenet 2020-12-17T13:57:21.000700Z

ain't cheap iirc

mpenet 2020-12-17T13:57:32.001Z

but then again. for 1G

borkdude 2020-12-17T13:57:47.001200Z

@dharrigan hsqldb can be compiled with graal: https://github.com/babashka/babashka-sql-pods/

2020-12-17T14:23:24.001700Z

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

slipset 2020-12-17T14:24:29.003Z

1gb? Duratom :)

thomas 2020-12-17T14:24:38.003200Z

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

synthomat 2020-12-17T14:59:56.003500Z

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

thomas 2020-12-17T15:00:32.004200Z

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

synthomat 2020-12-17T15:00:56.004600Z

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

val_waeselynck 2020-12-17T15:29:19.005100Z

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

1
jasonbell 2020-12-17T16:54:44.005500Z

Morning

ordnungswidrig 2020-12-17T22:37:38.007Z

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.

1😎
ordnungswidrig 2020-12-17T22:39:06.007100Z

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.