Building a Startup
with NoSQL
Sebastian Cohnen, @tisba
stormforger.com, @StormForgerApp
NoSQL Matters Barcelona 2014
Slide 2
Slide 2 text
About me
• Sebastian Cohnen, M. Sc.
• Developer & Founder from Cologne, Germany
• (Web-) Architectures, Performance & Scalability
• Founder of StormForger.com
(services around load testing HTTP-based systems)
Slide 3
Slide 3 text
Startups
• agile & open minded
• small teams, pragmatic
• solve new problems
Slide 4
Slide 4 text
NoSQL?
"A NoSQL (often interpreted as Not Only SQL)
database provides a mechanism for storage and
retrieval of data that is modeled in means other than
the tabular relations used in relational databases."
https://en.wikipedia.org/wiki/NoSQL
"Motivations for this approach include simplicity of
design, horizontal scaling and finer control over
availability."
Slide 5
Slide 5 text
NoSQL
• Ease of use (development & operations)
• Very special problem
Slide 6
Slide 6 text
StormForger
Slide 7
Slide 7 text
StormForger
• load and performance testing of HTTP APIs
• SaaS product
• plan, configure and execute tests
• analyze and compare results
Slide 8
Slide 8 text
We are a startup!
Slide 9
Slide 9 text
Our Needs
• handle highly structured, complex data
• ingest, process and query time series data
• caching of structured data
• centralized logging and log analysis
Slide 10
Slide 10 text
How to find the
perfect solution?
Slide 11
Slide 11 text
There isn't one :-/
Slide 12
Slide 12 text
Polyglot Persistence
(NoSQL)
Technology
Problem
Slide 13
Slide 13 text
…but be careful
• What are the downsides and tradeoffs?
• Availability of tooling?
• How mature is the technology?
• What about (community or commercial) support?
Slide 14
Slide 14 text
Back to StormForger's
needs…
Slide 15
Slide 15 text
• SQL-ish, declarative query language
• easy to get started with
• powerful background/stream processing
Time Series Data
Slide 16
Slide 16 text
Caching
• very, very fast
• primitive functions to work with data structures
• awesome community
Slide 17
Slide 17 text
• ELK (Elastic Search + Logstash + Kibana)
• Centralized, aggregated logging
• Great analysis and search features
Logging
Slide 18
Slide 18 text
Structured Data
• Not really tackled yet
• For now: serialize and store as TEXT in RDMS
Slide 19
Slide 19 text
Structured Data (2)
• we already evaluated some solutions
• great query language (AQL)
• support for JOINS & Graphs
Slide 20
Slide 20 text
Conclusion
• focus on ease of use aspects
• be pragmatic and think agile
• pick the right tool for the job
Slide 21
Slide 21 text
And if you think you
found the right solution…
…there are always
alternatives…
Slide 22
Slide 22 text
What about using a
SQL DB for NoSQL?
Slide 23
Slide 23 text
PostgreSQL
• hstore: Key/Value
• json & jsonb: JSON data
• just use your existing tools
• query via SQL, indexable, …
Slide 24
Slide 24 text
No content
Slide 25
Slide 25 text
Thanks!
https://stormforger.com
Sebastian Cohnen (@tisba)
Questions?