SlideShare a Scribd company logo
Polyglot Persistence
Lightning talk
NDCOslo
14.06.12
ArchitectureNeeds
One database
requirements = important
Let’s create an
application
NEED NUMBER 1
Read and write data
Need number 1
Key-Value Store
read and write data
Application
KV
NEED NUMBER 2
Search the data
Need number 2
Search Engine
search the data
Application
KV Search
NEED NUMBER 3
Relational search
Need number 3
Graph Database
relational search
Application
KV Search Graph
Application
KV Search
Graph
Application
KV Search
Graph
Application
KV SearchGraph
Events
NEED NUMBER 4
Generate reports
Need number 4
RDBMS
generate reports
Application
KV Search Graph
Events
RDBMS
Application
KV Search
Graph
Events
RDBMS
Polyglot Persistence
Thank you!
Ole-Martin Mørk
@olemartin
Bekk Consulting AS

More Related Content

What's hot

PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi DataPivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi DataMichael Nam
 
Twitter analytics in Bluemix
Twitter analytics in BluemixTwitter analytics in Bluemix
Twitter analytics in BluemixWilfried Hoge
 
Esriuk_track6_java_script unleashed
Esriuk_track6_java_script unleashedEsriuk_track6_java_script unleashed
Esriuk_track6_java_script unleashedEsri UK
 
Is it harder to find a taxi when it is raining?
Is it harder to find a taxi when it is raining? Is it harder to find a taxi when it is raining?
Is it harder to find a taxi when it is raining? Wilfried Hoge
 
2016 conservation track: under the hood of an rea: what is within a rapid ec...
2016 conservation track: under the hood of an rea:  what is within a rapid ec...2016 conservation track: under the hood of an rea:  what is within a rapid ec...
2016 conservation track: under the hood of an rea: what is within a rapid ec...GIS in the Rockies
 
Migrating from legacy Database to Postgres
Migrating from legacy Database to PostgresMigrating from legacy Database to Postgres
Migrating from legacy Database to PostgresAshnikbiz
 
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...VMware Tanzu
 
Hadoop Mapreduce Projects
Hadoop Mapreduce ProjectsHadoop Mapreduce Projects
Hadoop Mapreduce ProjectsPhD Direction
 
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT ForumKevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT ForumSITA
 
TechEvent biGenius What's New
TechEvent biGenius What's NewTechEvent biGenius What's New
TechEvent biGenius What's NewTrivadis
 
Connect SAP Cloud Platform with SAP Hybris Commerce
Connect SAP Cloud Platform with SAP Hybris CommerceConnect SAP Cloud Platform with SAP Hybris Commerce
Connect SAP Cloud Platform with SAP Hybris CommerceSAP Customer Experience
 
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan AmjadianTensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan AmjadianDevatanu Banerjee
 
Data Processing Workflow for the National Geographic World Atlas Mobile App
Data Processing Workflow for the National Geographic World Atlas Mobile AppData Processing Workflow for the National Geographic World Atlas Mobile App
Data Processing Workflow for the National Geographic World Atlas Mobile Appmousebird
 
Airbyte - Seed deck
Airbyte  - Seed deckAirbyte  - Seed deck
Airbyte - Seed deckAirbyte
 
SnapLogic Live: AWS Integration
SnapLogic Live: AWS IntegrationSnapLogic Live: AWS Integration
SnapLogic Live: AWS IntegrationSnapLogic
 
Create a Physical Dashboard with the Salesforce Analytics API
Create a Physical Dashboard with the Salesforce Analytics APICreate a Physical Dashboard with the Salesforce Analytics API
Create a Physical Dashboard with the Salesforce Analytics APISalesforce Developers
 
Using FME to Transform and Integrate Optical Connection Data Between Systems
Using FME to Transform and Integrate Optical Connection Data Between SystemsUsing FME to Transform and Integrate Optical Connection Data Between Systems
Using FME to Transform and Integrate Optical Connection Data Between SystemsSafe Software
 

What's hot (20)

PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi DataPivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
PivotBillions: Analyzing 1.5 Billion Rows of NYC Taxi Data
 
Graphql
GraphqlGraphql
Graphql
 
Twitter analytics in Bluemix
Twitter analytics in BluemixTwitter analytics in Bluemix
Twitter analytics in Bluemix
 
SSRS Presentation
SSRS PresentationSSRS Presentation
SSRS Presentation
 
Esriuk_track6_java_script unleashed
Esriuk_track6_java_script unleashedEsriuk_track6_java_script unleashed
Esriuk_track6_java_script unleashed
 
Is it harder to find a taxi when it is raining?
Is it harder to find a taxi when it is raining? Is it harder to find a taxi when it is raining?
Is it harder to find a taxi when it is raining?
 
2016 conservation track: under the hood of an rea: what is within a rapid ec...
2016 conservation track: under the hood of an rea:  what is within a rapid ec...2016 conservation track: under the hood of an rea:  what is within a rapid ec...
2016 conservation track: under the hood of an rea: what is within a rapid ec...
 
Migrating from legacy Database to Postgres
Migrating from legacy Database to PostgresMigrating from legacy Database to Postgres
Migrating from legacy Database to Postgres
 
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
Turnkey Multi-Region, Active-Active Session Stores with Steeltoe, Redis Enter...
 
Hadoop Mapreduce Projects
Hadoop Mapreduce ProjectsHadoop Mapreduce Projects
Hadoop Mapreduce Projects
 
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT ForumKevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
Kevin O'Sullivan, SITA Lab, presents at SITA 2013 Europe Aviation ICT Forum
 
TechEvent biGenius What's New
TechEvent biGenius What's NewTechEvent biGenius What's New
TechEvent biGenius What's New
 
Connect SAP Cloud Platform with SAP Hybris Commerce
Connect SAP Cloud Platform with SAP Hybris CommerceConnect SAP Cloud Platform with SAP Hybris Commerce
Connect SAP Cloud Platform with SAP Hybris Commerce
 
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan AmjadianTensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
TensorFlow 2.0 Overview - For TensorFlow User Group - Ehsan Amjadian
 
Data Processing Workflow for the National Geographic World Atlas Mobile App
Data Processing Workflow for the National Geographic World Atlas Mobile AppData Processing Workflow for the National Geographic World Atlas Mobile App
Data Processing Workflow for the National Geographic World Atlas Mobile App
 
Airbyte - Seed deck
Airbyte  - Seed deckAirbyte  - Seed deck
Airbyte - Seed deck
 
SnapLogic Live: AWS Integration
SnapLogic Live: AWS IntegrationSnapLogic Live: AWS Integration
SnapLogic Live: AWS Integration
 
Create a Physical Dashboard with the Salesforce Analytics API
Create a Physical Dashboard with the Salesforce Analytics APICreate a Physical Dashboard with the Salesforce Analytics API
Create a Physical Dashboard with the Salesforce Analytics API
 
Using FME to Transform and Integrate Optical Connection Data Between Systems
Using FME to Transform and Integrate Optical Connection Data Between SystemsUsing FME to Transform and Integrate Optical Connection Data Between Systems
Using FME to Transform and Integrate Optical Connection Data Between Systems
 
Yodeck at Open Coffee #98
Yodeck at Open Coffee #98Yodeck at Open Coffee #98
Yodeck at Open Coffee #98
 

Viewers also liked

Eurocomm beyond brussels
Eurocomm beyond brusselsEurocomm beyond brussels
Eurocomm beyond brusselsZN Consulting
 
Hyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweetsHyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweetsZN Consulting
 
Finding a job is a journey not a destination
Finding a job is a journey not a destinationFinding a job is a journey not a destination
Finding a job is a journey not a destinationZN Consulting
 
Europe Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.euEurope Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.euZN Consulting
 

Viewers also liked (8)

Eurocomm beyond brussels
Eurocomm beyond brusselsEurocomm beyond brussels
Eurocomm beyond brussels
 
Presentasjon om skyen
Presentasjon om skyenPresentasjon om skyen
Presentasjon om skyen
 
Presentation of Redis
Presentation of RedisPresentation of Redis
Presentation of Redis
 
Evolusjonen av PaaS
Evolusjonen av PaaSEvolusjonen av PaaS
Evolusjonen av PaaS
 
Hyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweetsHyperthinking Leadership in 48 tweets
Hyperthinking Leadership in 48 tweets
 
IABC EMENA AGM 2013
IABC EMENA AGM 2013IABC EMENA AGM 2013
IABC EMENA AGM 2013
 
Finding a job is a journey not a destination
Finding a job is a journey not a destinationFinding a job is a journey not a destination
Finding a job is a journey not a destination
 
Europe Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.euEurope Citizen House - citizenhouse.eu
Europe Citizen House - citizenhouse.eu
 

More from Ole-Martin Mørk

Patterns for key-value stores
Patterns for key-value storesPatterns for key-value stores
Patterns for key-value storesOle-Martin Mørk
 
Du må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjonDu må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjonOle-Martin Mørk
 
Collaborative Filtering in Map/Reduce
Collaborative Filtering in Map/ReduceCollaborative Filtering in Map/Reduce
Collaborative Filtering in Map/ReduceOle-Martin Mørk
 

More from Ole-Martin Mørk (6)

Graph search with Neo4j
Graph search with Neo4jGraph search with Neo4j
Graph search with Neo4j
 
Patterns for key-value stores
Patterns for key-value storesPatterns for key-value stores
Patterns for key-value stores
 
Polyglot persistence
Polyglot persistencePolyglot persistence
Polyglot persistence
 
Du må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjonDu må vite hva som skjer i produksjon
Du må vite hva som skjer i produksjon
 
Hele butikken i skyen
Hele butikken i skyenHele butikken i skyen
Hele butikken i skyen
 
Collaborative Filtering in Map/Reduce
Collaborative Filtering in Map/ReduceCollaborative Filtering in Map/Reduce
Collaborative Filtering in Map/Reduce
 

Recently uploaded

Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀DianaGray10
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxDavid Michel
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonDianaGray10
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxAbida Shariff
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1DianaGray10
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka DoktorováCzechDreamin
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityScyllaDB
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupCatarinaPereira64715
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfalexjohnson7307
 

Recently uploaded (20)

Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
Exploring UiPath Orchestrator API: updates and limits in 2024 🚀
 
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptxUnpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
Unpacking Value Delivery - Agile Oxford Meetup - May 2024.pptx
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptxIOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
IOS-PENTESTING-BEGINNERS-PRACTICAL-GUIDE-.pptx
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1UiPath Test Automation using UiPath Test Suite series, part 1
UiPath Test Automation using UiPath Test Suite series, part 1
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová10 Differences between Sales Cloud and CPQ, Blanka Doktorová
10 Differences between Sales Cloud and CPQ, Blanka Doktorová
 
Optimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through ObservabilityOptimizing NoSQL Performance Through Observability
Optimizing NoSQL Performance Through Observability
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
ODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User GroupODC, Data Fabric and Architecture User Group
ODC, Data Fabric and Architecture User Group
 
The architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdfThe architecture of Generative AI for enterprises.pdf
The architecture of Generative AI for enterprises.pdf
 

Editor's Notes

  1. Jegskalsnakkeomarkitektur.Hvaer starting point for god arkitektur?Arkitektur-arbeid starter forhåpentligvis med åavdekkebehov. For åvitehvaoghvordan vi skallagenoesåmå vi kjennetil needs the application should fulfill
  2. Vi tegnerbokser, og vi tegner linesSystemenesnakkersammenpåforskjelligeprotokollerNoesynkront, noeasynkrontSome need to be up all the time, some need low responsetimewe keep on drawing, vi skaperdetsystemetsomsvarerpå needs bådetilfunksjonelleogikke-funksjonellebehov.Tilslutttegner vi inn et repository, en database.
  3. Challenge vi møtervedåtegne inn én database er at en database ofteikkevilværenoktilå meet the customers needsBruker du en relasjonsdatabasesåfår du utfordringer med performance, object relational impedance ogskaleringBruker du en key-value-database får du utfordringer med oppløsningenpådataeneogrelasjonerBruker du en grafdatabasefår du utfordringer med skaleringog lookupsUansetthvilken database du velgersåvil du fåutfordringer. Vi erklar over disseutfordringene, likevelvelger vi åikkegjørenoe med det
  4. Vi harsålett for åvelgesammedatabaseteknologihver gang, utenå se nøyepåbehovene.Hvis vi studererbehovenenøye, såvil vi se at valgavdatabasetechnologyikkeersåenkeltsom man skulletro..
  5. Dersom du ønskerpersistensiarkitekturen din såerdetfordi du ønskerålagreog lese data. Deterdetprimærebehovet.Do The Simplest Thing That Could Possibly Work. Nårbehoveterålagreog lese data, såerdetenkleste en ren key/value store. Detviktigstemålet med databasener at den erenkelog at domenet matcher de lagrededataene best mulig
  6. Detervelog bra åkunne lese ogskrive data. Men man måsom regel kunnesøkeidataeneogså. Vi ønskeråfinnepersonervhanavn. Vi ønskeråfinneallesomharadressei Oslo etc etc.. og en key-value store erikkeså god påfulltekstsøk.. forsåvidtikke en relasjonsdatabaseheller.. Så vi trenger en søkemotor. Detteer et behovjeghar sett oppståi mange forskjelligeprodukter. Microsoft kjøpte Fast så de kunnefå en søkemotoriSharepoint. De haddeallerede en relasjonsdatabaseibunn, men fantut at detvargreitåbrukelittpengerpå en søkemotor. Allecms-verktøyharbåde database ogsøkemotor, ogfleresaksbehandlingsapplikasjonerjegharværtborteihardettebehovet.Så.. for åkunnesøkegodtivåredataersåtenger vi en søkemotor..ogdeterjoikkenoe problem. Vi legger inn et kalltilsøkemotorenhver gang vi oppdatererdatabasen. Kanskje hiver opp en synkroniseringsjobbhvernatt for åværesikker.. men dettekomplisererikkearkitekturenvårveldig
  7. En ting søkemotorerikkeerså bra påerrelasjonssøk. Si for eksempeljegskallaget en ansattdatabase for et konsulenthus. Selgerenskriver et tilbud for en kunde, ogkundenhar stilt kravtilfagkunnskapogerfaring. Han ønsker kun konsulentersomharjobbet med F# hos minimum 2 kunder. Den spørringenerlitt lei åfåtili en relasjonsdatabase. I en grafdatabaseerdennespørringenveldigenkel, ogikkeminstlynrask.Så for dettebehovetvelger vi oss en grafdatabase.
  8. Her erdetmyesomkangågalt.. men detblirmyedupliseringavlogikk her.For detførste. Applikasjonenkanikkeforholdesegtilalledisseforskjelligedatabasene.. så vi fjernerrelasjonen.I tillegg. Databasenebørhellerikkekjennetilhverandre, så vi fjernerdem
  9. Ogsåreorganiserer vi litt..
  10. Så…Visnakker med en key value store, men vi snakkerikke med noenandre.For at de andreskalfånoe data åforholdesegtil, såinnfører vi en eventstore. Alleendringerav data ivårapplikasjon lager en event. Våredatabaserlytterpådennekøen, ogoppdatererdataene sine lokalt. Serpåeventen, oglagrer de dataenesomerinteressante for seg.Dettebørforøvrigvære en persistent eventstore. Hvisgrafdatabasengårned for en periode, såskal man kunnespilletilbake events somermistet, eller man fårbehov for en heltny database…
  11. Plutseligkommerdatavarehusfolkenepåbanene, ellerøkonomene, ellerstatistikkgutta.. De vilgenerererapporter. De vil ha statistikk..Hyggeligdet, ogviktig.. Detenesteproblemeter at vi harikkenoen database somtilfredstillerderesbehov. Detteerikkenoe problem. Vi hareventstoren, ogdeterikkeværreennåpluggepå en relasjonsdatabasesomlytterpåeventeneog vi er good to go..Tre store positive ting med dette. 1. Vi kjenteikketilbehovet for rapportertidligere, men pgaeventstoremodellensåkunne vi enkeltleggetil en ny database 2. Iom at alleeventene ligger lagretsåkan vi enkeltsetteopp en ny database med gamle data utenåmåttekjøre en styggkonverteringsjobb. 3. Rapporteringsdatabasenbrukes kun avdem, ikkeavoss. Så de kankjøresåtungerapporter de vil. Detpåvirkerikkevårapplikasjondetminste.
  12. Sådetteer polyglot persistence.Man vet at detikkefinnesnoen silver bullet. Programming language, libraries, operating systems.. and database!Så man velger den databasensomtilfredstiller de behovene man har der og da..Dettemåikkeimplementeres med en event drevetarkitektur, men dethjelper..Man girkundendet den vil ha først, ogkanenkeltutvidesdersomdetdukkeroppnyebehovetterhvert. For detgjør det..