Y
HN Search
Hacker News Search
new
|
comments
|
top
|
jobs
refset
searching PlanetScale…
1.
▲
2.
▲
3.
▲
4.
▲
5.
▲
6.
▲
26 ms
·
421.
▲
by
refset
6y ago
Hi, I work on Crux :) 1) Crux is schemaless at its core, but you can build your own ~class hierarchy model using regular attributes and Datalog rules to differentiate between types of entities. 2) Subscribing to arbitrary Datalog without an
422.
▲
by
refset
6y ago
Thanks for the explanations. That is a very intriguing use-case for foreign data wrappers!
423.
▲
by
refset
6y ago
> temporal concepts should have been deeply native to SQL right to its core Oh absolutely. I think the original intuition by Snodgrass et al. in TSQL2 to model temporality outside of the actual relational structure was a more promising d
424.
▲
by
refset
6y ago
That sounds neat. What does the performance of querying past versions look like? For instance, is lookup time linear with the amount of history or do you maintain special temporal indexes?
425.
▲
by
refset
6y ago
> I've always been bewildered why this wasn't a core part of SQL from the very beginning. It's a long and messy history (no pun intended), but essentially it was rarely practical to consider retaining database history for
426.
▲
by
refset
6y ago
System time (aka "transaction time") is also invaluable for debugging if you annotate it with release versions. Unless an application is particularly strapped for storage costs, which is rare in this day and age, it ought to be th
427.
▲
by
refset
6y ago
There was a ClojuRU 2019 talk about such a thing: https://youtu.be/Hf57HbRvYhM
428.
▲
The Impossibility of Fast Transactions [pdf]
(infoscience.epfl.ch)
1 points
by
refset
6y ago
|
0 comments
429.
▲
by
refset
6y ago
True, I was being somewhat pedantic. Whenever I see the word "db" I can't help but think "DBMS". It's frustrating that "DBMS" is such a mouthful that nobody bothers using it anymore, and that KV store
430.
▲
by
refset
6y ago
Embedded KV stores are as comparable to SQLite as Cassandra is to Postgres (i.e. lacking joins or other data modelling essentials), but I agree that embedding a database directly inside your app is interesting and opens up a world of possib
431.
▲
by
refset
6y ago
Sounds like DataScript [0] could be a good fit for you. The Datalog query language is very powerful for writing recursive rules. [0] https://github.com/tonsky/datascript
432.
▲
by
refset
6y ago
Hi, I work on https://opencrux.com which is a close relative of Datomic but with different design goals (bitemporal + schemaless). It has a rich set of Datalog features, best exemplified in the tests: https://github.c
433.
▲
by
refset
6y ago
Are there any tools you recommend for DDD? Have you seen much justification for bitemporal or retroactive events, as in https://dddeurope.com/2018/speakers/thomas-pierrain/ ?
434.
▲
by
refset
6y ago
Within Crux's new transaction functions you are able to run queries against the entire database and (very soon) also against speculative transactions, to enforce all manner of constraints and control whether the transactions succeed&#x
435.
▲
by
refset
6y ago
Things have been moving quickly in recent months! We've already done some prototyping on a pull syntax (using EQL) and will start proper work on it after the 1.9 release is out. Alongside some less-exciting changes 1.9 will include ful
436.
▲
by
refset
6y ago
Any ideas what some of the challenger banks are using? I've not seen any examples beyond Nubank (~$10B valuation), who have bet big with Datomic: https://www.youtube.com/watch?v=VYuToviSx5Q Also: https://www
437.
▲
by
refset
6y ago
The best place to start for context would be Håkan's ClojuTRE talk: https://www.youtube.com/watch?v=YjAVsvYGbuU And here are the slides for that talk, which include a few references: https://juxt.pro/ha
438.
▲
by
refset
6y ago
Well, I think Postgres will remain a very safe default choice in new projects for most organisations for a long time yet, because the skills to work with it are common and relatively cheap. However, Crux is much easier to justify with stake
439.
▲
by
refset
6y ago
Indeed, it's an impressively eclectic product, considering how niche it seems to still be. Incidentally they have some fairly nice materials about their own bitemporal query support and it's use across industries, e.g.: https:&#x
440.
▲
by
refset
6y ago
There's another thread on the homepage right now about Crux [0], which is a database designed specifically to be able to operate downstream from multiple legacy systems using bitemporal indexes to stitch everything together. This patte
441.
▲
by
refset
6y ago
Aha, well it's certainly been a learning curve for me! I found the public MIT lectures on "retroactive data structures" (by Erik Demaine) very helpful to clarify the mental model and properties of temporal databases. Point-in
442.
▲
by
refset
6y ago
These are definitely valid points, thanks. I would like to see Crux evolve into something more comprehensive like MarkLogic eventually, partly to not disappoint anyone with those common expectations of what a "document database" o
443.
▲
by
refset
6y ago
The Strange Loop 2019 talk linked by the GP is more recent and contains more technical details, but yes the Clojure/north talk is a nice bit of history showing the unveiling :) My personal favourite is the talk from ClojuTRE by the mai
444.
▲
by
refset
6y ago
I can only guess what was meant, but I suspect the main argument is that projection code in an event sourced system is much more nimble when it's not tied down to an underlying schema. Documents make focusing on language level types mu
445.
▲
by
refset
6y ago
Hi everyone, thanks for the interest! I help steer the roadmap for Crux, which is very openly visible on GitHub, and we have a 1.9 release coming up in the next couple of weeks which will be the most significant milestone since we launched
446.
▲
by
refset
6y ago
It's usually no more than a day or two's work for us to get a new dialect figured out and to wire up CI tests with containers etc. It wouldn't be infeasible for someone new to Clojure to manage it about the same time also. Th
447.
▲
by
refset
6y ago
That's a pretty accurate summary. Documents are very straightforward to reason about at a transactional level, particularly when handling unpredictable changes to data models. Once documents are ingested into the EAV-like indexes you c
448.
▲
by
refset
6y ago
It's worth noting that Crux supports a healthy range of options for transaction log and document storage beyond Kafka, including a variety of JDBC backends (SQLite, Postgres etc.) Kafka is usually more than most people want or need. Th
449.
▲
by
refset
6y ago
It's worth a mention that there is a next level of challenge for backfilling and correcting historical data - that's when a bitemporal data model is a good idea. In other words, keeping track of the "valid time" (or &quo
450.
▲
by
refset
6y ago
Crux is designed to scale directly based on how RocksDB (or LMDB) performs on a single node, in terms of: sustained ingestion throughput, KV seeks/sec, and the sheer quantity of KV data that can be supported on an array of local SSDs (
More ›