noworriesnate
Joined 6 years ago
Joined 6 years ago
The venture capitalist world is full of people who will deliberately ruin a company based on the extremely unlikely but possible scenario where the companies goes to the moon in value. I think there's pretty much 100% certainty that multiple venture capitalists are going to try exactly what you're suggesting on the off chance that it makes them the new world controller.
So the tradeoff this database makes is it doesn't work at high scale, but it has a lot of features not typically in a database, such as:
- The ability to embed non-turing-complete event source handlers in the database schema
- Categorical type system that makes migrations provably secure
- All schema changes take place through migrations
Example syntax:
Inventory = aggregate(key = sku) {
sku: String
name: String
available: crdt(merge = counter) I64
command Stock(sku: String, name: String, qty: U64) {
sku = input.sku
name = input.name
available += input.qty
}
command Reserve(sku: String, qty: U64) {
available -= input.qty
}
command Release(sku: String, qty: U64) {
available += input.qty
}
}
command SubmitOrder(order_id: String, party_id: String, sku: String, qty: U64, total: U64) {
Order::PlaceOrder(
id = input.order_id
party_id = input.party_id
sku = input.sku
qty = input.qty
total = input.total
) compensate Order::Cancel()
# `sku` is Inventory's key — the step must bind it so the engine can
# resolve which Inventory row the command targets (task-212).
Inventory::Reserve(sku = input.sku, qty = input.qty)
compensate Inventory::Release(sku = input.sku, qty = input.qty)
}https://xcancel.com/Truthtellerftm/status/197901264211193488...