diff options
author | EuAndreh <eu@euandre.org> | 2020-11-14 20:28:49 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2020-11-14 20:28:49 -0300 |
commit | 3c2898740b40411b0e37e6b2b4b0ae4643165c9b (patch) | |
tree | 5a1f2ba3290cb6c34e1055c1d17190b0ab1bf5c0 /_slides/2020-10-22-datomic-on-global-good-reasons-for-and-against-it.slides | |
parent | en.txt: Remove erroneous "portuguse" entry (diff) | |
download | euandre.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.slides | 161 |
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)" |