aboutsummaryrefslogtreecommitdiff
path: root/_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2020-11-14 20:28:49 -0300
committerEuAndreh <eu@euandre.org>2020-11-14 20:28:49 -0300
commit3c2898740b40411b0e37e6b2b4b0ae4643165c9b (patch)
tree5a1f2ba3290cb6c34e1055c1d17190b0ab1bf5c0 /_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides
parenten.txt: Remove erroneous "portuguse" entry (diff)
downloadeuandre.org-3c2898740b40411b0e37e6b2b4b0ae4643165c9b.tar.gz
euandre.org-3c2898740b40411b0e37e6b2b4b0ae4643165c9b.tar.xz
Remove files from _slides while still unpublished
Diffstat (limited to '_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides')
-rw-r--r--_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides161
1 files changed, 0 insertions, 161 deletions
diff --git a/_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides b/_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides
deleted file mode 100644
index 8f207c9..0000000
--- a/_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides
+++ /dev/null
@@ -1,161 +0,0 @@
----
-title: "Datomic on global: good reasons for and against it"
-date: 2020-10-22
-layout: slides
-lang: en
-ref: datomic-on-global-good-reasons-for-and-against-it
-published: false
----
-
-# Datomic on global
-
-**Good** reasons for and against it
-
----
-
-# Premise
-
-Datomic's bottleneck is **write** throughput, not read
-
----
-
-When creating a new service...
-
----
-
-```clojure
-(defn database-for-service
- [service]
- (let [prototype (prototype-for-service service)]
- (if (= :global prototype)
- :datomic
- #{:dynamodb :redis :nothing})))
-```
-
----
-
-...which is, in my opinion, a poor heuristic.
-
----
-
-The deciding factor shouldn't be the prototype, but the **cardinality**
-
----
-
-```diff
- (defn database-for-service
- [service]
-- (let [prototype (prototype-for-service service)]
-- (if (= :global prototype)
-- :datomic
-- #{:dynamodb :redis :nothing})))
-+ (let [cardinality (cardinality-for-service service)]
-+ (if (= :too-high cardinality)
-+ #{:dynamodb :redis :nothing
-+ :datomic))))
-```
-
----
-
-```clojue
-(defn database-for-service
- [service]
- (let [cardinality (cardinality-for-service service)]
- (if (= :too-high cardinality)
- #{:dynamodb :redis :nothing
- :datomic))))
-```
-
----
-
-But how to determine when the cardinality is
-
-**`:too-high`**?
-
----
-
-Let's think about the cardinality of existing services we know
-
----
-
-What is the cardinality of...
-
----
-
-# savings-accounts
-
----
-
-# inductor
-
----
-
-# crebito
-
----
-
-# diablo
-
----
-
-# lost-boy?
-
----
-
-# hook?
-
----
-
-# ledger
-
----
-
-# blackleach
-
----
-
-# notification
-
----
-
-# toasty
-
----
-
-# auth
-
----
-
-# waypoint
-
----
-
-# jurassic-park
-
----
-
-Compare the database choice of services with similar cardinalities:
-
-## notifications vs toasty
-
----
-
-Compare different cardinalities for services on global prototype:
-
-## jurassic-park vs auth
-
----
-
-Compare different cardinality for different services inside the same domain:
-
-## savings-accounts -> blackleach -> diablo -> ledger
-
----
-
-## Thank you!
-
-References:
-
-1. these slides: [{{ site.tld }}/slides.html]({% link slides.md %})
-2. [prose version of this presentation]({% link _articles/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.md %})
-3. "[Understanding Database Sharding](https://www.digitalocean.com/community/tutorials/understanding-database-sharding)"