Fork me on GitHub
#xtdb
<
2023-07-31
>
hifumi12309:07:57

Is XTDB 1.x intended to be run in small scale applications as well? where “small-scale” means something like a desktop application using a database to persist state, user preferences, etc.

tatut10:07:33

I don’t see why it couldn’t… just that it might be overkill

2
tatut10:07:48

when you can just serialize state or options into a simple file and load that

👍 2
Ryan Barber16:07:10

I am really enjoying learning about xtdb. Worked through the learn-xtdb-datalog-today on Nextjournal and the concepts really clicked. I am starting work on an application that could really benfit from bitemporal record storage. The application would have a small user base (50 or so), but would be sensitive to data loss. Would it be premature to start development with xtdb?

refset11:08:23

Hey @U055FN2ES82 thanks for the feedback! 🙂 data loss shouldn't be a concern so long as you are using a suitably durable tx-log or document-store backend such as Postgres (and also avoid writing non-pure transaction functions that could create inconsistencies)

Ryan Barber16:08:45

Do you expect the upgrade from 1.x to 2.x to be challenging?

Ryan Barber16:08:03

Or should we start developing with 2.x now

refset16:08:15

> Do you expect the upgrade from 1.x to 2.x to be challenging? It won't be completely trivial as there are changes to the underlying structure of things (particularly tables and data types), but we are aiming for it to be a broadly smooth & well-documented upgrade experience. The main caveat is whether you end up building an application that is tightly coupled to the exact performance characteristics of 1.x - that might make the cost-benefit justification of the upgrade more tricky to evaluate. > should we start developing with 2.x now 2.x is currently unstable, meaning you shouldn't attempt to deploy it for serious use cases ahead of the first formal alpha release because we won't have the bandwidth to support & troubleshoot - but depending on your timelines (and ours!) it might be worth considering. When does the application need to be ready for? One option is to build your application on 1.x in such a way that it can make the 2.x transition easier, by avoiding particular APIs or patterns that are changing. If that is of interest we can try to enumerate these. Let me know if you'd like to discuss more on a call or whatever - happy to continue here though too!

Ryan Barber19:08:47

Looking to be ready for the spring.

👍 2
Ryan Barber19:08:48

Thanks for the offer of the call. I will can investigate 2.x API and reach out with any question we have.

👌 2
Ryan Barber16:08:48

2.x seems to introduce the concept of tables? Does this mean a "table" value has been added into the "flat set of triples"?

refset17:08:11

kind of, you can think of it a bit like "https://en.wikipedia.org/wiki/Named_graph", i.e. just a bucket of triples

refset17:08:12

internally there is less emphasis on triples in general though, as 2.x supports arbitrarily sized/shaped relations

refset17:08:13

you can still model everything as triples in a single global table if desired, but the query engine isn't going to optimize for that in the near future

Ryan Barber17:08:52

So, in https://www.w3.org/TR/n-quads/, the table is the context? would an entity id be unique within the table or globally unique?

2
refset18:08:17

in 2.x the entity/record id is only unique within a table