Building a Startupwith NoSQL
Sebastian Cohnen, @tisbastormforger.com, @StormForgerApp
NoSQL Matters Barcelona 2014
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)
Startups
• agile & open minded
• small teams, pragmatic
• solve new problems
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."
NoSQL
• Ease of use (development & operations)
• Very special problem
StormForger
StormForger• load and performance testing of HTTP APIs
• SaaS product
• plan, configure and execute tests
• analyze and compare results
We are a startup!
Our Needs• handle highly structured, complex data
• ingest, process and query time series data
• caching of structured data
• centralized logging and log analysis
How to find theperfect solution?
There isn't one :-/
Polyglot Persistence
(NoSQL)TechnologyProblem
…but be careful• What are the downsides and tradeoffs?
• Availability of tooling?
• How mature is the technology?
• What about (community or commercial) support?
Back to StormForger's needs…
• SQL-ish, declarative query language
• easy to get started with
• powerful background/stream processing
Time Series Data
Caching
• very, very fast
• primitive functions to work with data structures
• awesome community
• ELK (Elastic Search + Logstash + Kibana)
• Centralized, aggregated logging
• Great analysis and search features
Logging
Structured Data
• Not really tackled yet
• For now: serialize and store as TEXT in RDMS
Structured Data (2)
• we already evaluated some solutions
• great query language (AQL)
• support for JOINS & Graphs
Conclusion
• focus on ease of use aspects
• be pragmatic and think agile
• pick the right tool for the job
And if you think you found the right solution…
…there are always alternatives…
What about using a SQL DB for NoSQL?
PostgreSQL• hstore: Key/Value
• json & jsonb: JSON data
• just use your existing tools
• query via SQL, indexable, …
Thanks!
https://stormforger.comSebastian Cohnen (@tisba)
Questions?