Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Surviving Data in Large Doses
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Tareq Abedrabbo
November 20, 2013
Technology
0
230
Surviving Data in Large Doses
NoSQL Search Roadshow London 2013
Tareq Abedrabbo
November 20, 2013
Tweet
Share
More Decks by Tareq Abedrabbo
See All by Tareq Abedrabbo
Not a SO(A) Trivial Question!
tareqabedrabbo
0
65
Designing APIs for Data Driven Systems
tareqabedrabbo
0
59
Things I wish I'd known before I started with Microservices
tareqabedrabbo
0
680
Building a Scalable Event Service with Cassandra: Design to Code
tareqabedrabbo
1
480
The 7 Deadly Sins of Microservices
tareqabedrabbo
7
1.2k
The Ubiquitous Graph
tareqabedrabbo
0
210
The 7 Deadly Sins of Microservices
tareqabedrabbo
0
620
Building a Scalable Event Service with Cassandra: Design to Code
tareqabedrabbo
0
100
Time Series and Events: Storage and Querying Strategies with Cassandra
tareqabedrabbo
0
320
Other Decks in Technology
See All in Technology
Dr. Werner Vogelsの14年のキーノートから紐解くエンジニアリング組織への処方箋@JAWS DAYS 2026
p0n
1
130
JAWS DAYS 2026 ExaWizards_20260307
exawizards
0
400
マルチロールEMが実践する「組織のレジリエンス」を高めるための組織構造と人材配置戦略
coconala_engineer
3
710
EMからICへ、二周目人材としてAI全振りのプロダクト開発で見つけた武器
yug1224
5
520
Claude Codeの進化と各機能の活かし方
oikon48
21
12k
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
4
1.2k
DevOpsエージェントで実現する!! AWS Well-Architected(W-A) を実現するシステム設計 / 20260307 Masaki Okuda
shift_evolve
PRO
3
510
us-east-1 に障害が起きた時に、 ap-northeast-1 にどんな影響があるか 説明できるようになろう!
miu_crescent
PRO
13
4.2k
親子 or ペアで Mashup for the Future! しゃべって楽しむ 初手AI駆動でものづくり体験
hiroramos4
PRO
0
100
JAWS DAYS 2026 楽しく学ぼう!ストレージ 入門
yoshiki0705
2
140
A Gentle Introduction to Transformers
keio_smilab
PRO
2
1k
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
230
Featured
See All Featured
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
1
320
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
A Soul's Torment
seathinner
5
2.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Amusing Abliteration
ianozsvald
0
130
Believing is Seeing
oripsolob
1
79
KATA
mclloyd
PRO
35
15k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
230
How to Think Like a Performance Engineer
csswizardry
28
2.5k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
670
Design in an AI World
tapps
0
170
Transcript
Surviving Data in Large Doses Tareq Abedrabbo NoSQL Search Roadshow
London 2013
About me • CTO at OpenCredo • Delivering large-scale data
projects in a number of domains • Co-author of Neo4j in Action (Manning)
What this talk is about…
Supermarkets
Meanwhile, in DevLand
Bob is an application developer
Bob wants to build an application. Bob knows that a
relational database is definitely not the right choice for his application
Bob chooses a NoSQL database because he likes it (he
secretly thinks it’s good for his CV too).
Bob goes for a three-tier architecture. It’s separation of concerns.
It’s best practice.
Bob builds an object model first. It’s Domain Driven Design.
It’s best practice.
Bob uses an object mapping framework. Databases should be hidden
behind layers of abstraction. It’s best practice.
Bob hopes for the best!
What challenges is Bob facing?
Suitability of the data model
Suitability of the architecture and the implementation
Ability to meet new requirements
Being able to use the selected technology to the best
of its ability
Performance
A number of applications built on top of NoSQL technologies
end up unfit for purpose
How did we get ourselves into such a mess?
• Technical evangelism • Evolution in requirements • Unthinking decisions
• Ill-informed opinions
Common problem: there is focus on technology and implementation, not
on real value
So what’s the alternative?
Separation of concerns based on data flow
Data flow
• Lifecycle • Structure • Size • Velocity • Purpose
How?
Identify the concerns: what do I care about?
Identify the locality of these concerns: where are the natural
boundaries?
Build focused specialised models
Compose the models into a complete system
Computing is data structures + algorithms
If we accept that separation of concerns should be applied
to algorithms, it is appropriate to apply the same thinking to data
The real value of this form of separation of concerns
is true decoupling
What’s out there
CQRS
Polyglot Persistence
How do I apply it?
It depends on the data flow :)
For general-purpose data platforms, micro services work well
Build micro services that are closer to the natural underlying
model
Other strategies are possible, for example if the data is
highly volatile, consider in-memory grids
There are practical considerations - obviously
Don’t start with 10 different databases because you think you
might eventually need all of them
How would that impact support and operations?
There is potential for simplification based on clearly targeted usage
Links • Twitter: @tareq_abedrabbo • Blog: http://www.terminalstate.net • OpenCredo: http://www.opencredo.com
Thank you!