Unconference - XML Prague
Trying not to pre-empt. tomorrows conference talk!
Demo some pre-beta version features
AMA - Ask Me Anything!
XML and Binary
JSON native - work in progress
Written in C++ 14 and Java
100% eXist-db API Compatible
Will be Open Sourced...
Not designed to replace comprehensive tools like Oxygen!
Create and Edit Documents in the database
Execute XQuery against the database
Serialization Settings and Paging
Connect to Multiple servers
Browse Documents in the database
Modify Document Properties - permissions, type, metadata, etc.
Dashboard (in progress...)
Overview of system health and load
Detailed statistics of system operation
Access to logs
Theia - TypeScript
Looking for more contributors - some paid opportunities
Compatible with eXist-db (currently)
Charaf Eddine Cheraa
Took the TypeScript holiday - https://blog.adamretter.org.uk/typescript-holiday/
From Algeria, on GitHub - @ccheraa
Sadly, he could not be here today!
Thank you Charaf!
Univerally Unique Identifier
v1 with random MAC
Very fast generation (> 5 Million / sec)
Assigned to every resource e.g. Documents and Collections
Resources retrieval by UUID
Immune to move/rename/copy
Persist across backup/restore
Restore - Collision Protection
e.g. Provenance / External Systems / Archival
Uses the key/value Model
Just the tip of the iceberg!
Metadata can be assigned to any resource e.g. Documents and Collections
Resources Queryable by Key or, Key and Value
Index Backed for Performance
XQuery Metadata Module
Metadata CRUD operations
Search by Metadata
eXist-db style Data Export
Exploits immutable nature of SST files
Full Backup! Could add differential in future
Hard links on same filesystem
Simple file copy if across filesystems
Each XQuery is a distinct transaction
auto-abort if error is raised
auto-commit on successful completion
Creates a Sub-Transaction
auto-abort on entering catch clause
auto-commit on try body completion
Allows the user to control transactional updates
Nesting try/catch... nests sub-transactions
BLOB identity established through BLAKE256 digest
Each BLOB maintains a reference count
Vacuum process hoovers up any BLOBs with count=0
Unless they are recycled first!
Move is a zero I/O operation
Copy is an almost zero I/O operation
Uses just a few bytes more for each copy
eXist style data export can also deuplicate BLOBs