DEV Community

Discussion on: How to Implement Nuxt.js/Vue.js OAuth2 Authentication With an External REST-API Server (based on Vert.x/Kotlin) and Keycloak 🐬

Collapse
 
migoya profile image
David Migoya

I have never heard of SirixDB.

Collapse
 
johanneslichtenberger profile image
Johannes Lichtenberger • Edited

It's a temporal document store which never overrides data.

  • if you ever encountered human or application errors when storing data in a database it might be for you (simply revert to a known good snapshot and store a new revision with fixed data)
  • if you ever had to audit what was in the database at a specific time it might be for you (every revision is indexed, unchanged database pages are shared between revisions...)
  • if you ever had to analyse how something changed over time you can do time-travel queries. For instance selecting a price of a product (might be a JSON record value and you can simply fetch all past versions). Or you can do really sophisticated time travel queries...

Basically It's all about versioning, even the database pages are stored in fragments to write changes on a fine granular level.

The revision timestamp, the time a transaction commits is only stored once for all the changed data in a RevisionRootPage.

All records might be hashed in a merkle tree with a rolling hash function.