SlideShare a Scribd company logo
Maxim Zaks
Beyond JSON -
An Introduction to FlatBuffers
Agenda
• About me
• The Why and How of Data Serialisation
• Deep dive into FlatBuffers
RESI News -
Nachrichten, die Spaß machen
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
VS.
Why do we need data
serialisation?
• Persisting State
• Machine to Machine Communication
• Representation of Configuration
How can we persist data
on mobile?
• Custom binary representation
• Language provided binary serialisation
• Text based representation
• CSV, XML, JSON,YAML
• Embedded SQL or NoSQL DB
• Binary cross platform serialisation library
• FlatBuffers, Protocol Buffers, Cap’n Proto, SBE,
Apache Thrift
Important criteria for persisting
data
• Size on disk
• Speed of read & write / partial read /
memory consumption
• Human readable and writable
• Support of OO language type system
• Data versioning / evolution / migration
VS.
JSON
• Size on disk 👍👎
• Speed of read & write / partial read /
memory consumption 👎
• Human readable and writable 👍 👍
• Support of OO language type system 👍👎
• Data versioning / evolution / migration 👍👎
FlatBuffers
• Size on disk 👍👎
• Speed of read & write / partial read /
memory consumption 👍 👍
• Human readable and writable 👍👎
• Support of OO language type system 👍 👍
• Data versioning / evolution / migration 👍 👍
JSON FlatBuffers
size on disk 👍👎 👍👎
read & write
performance
👎 👍👍
human readable &
writable
👍👍 👍👎
typed API 👍👎 👍👍
multi version support 👍👎 👍👍
But what about sending
data?
Important criteria for sending
data
• Size on disk wire
• Speed of read & write / partial read /
memory consumption
• Human readable and writable
• Support of OO language type system
• Data versioning / evolution / migration
Enough theory
let’s do some practice
FlatBuffers IDL
./flatc -n person.fbs
FlatBuffers Schema Editor
FlatBuffers IDL
FlatBuffers IDL
FlatBuffers IDL
FlatBuffers IDL
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
What does it all mean
in practice?
Size on disk / wire
Speed of read, write
and memory allocation
Beyond JSON - An Introduction to FlatBuffers
Beyond JSON - An Introduction to FlatBuffers
Partial Read
• over 3M cities
• ≈200 MB
• real time search
• in memory
• from file 10x
slower
Human readable & writable
is a manner of tooling
• ./flatc -b person.fbs person.json
• ./flatc -t person.fbs -- person.bin --raw-
binary --strict-json
Support of OO
Language type system
Beyond JSON - An Introduction to FlatBuffers
Data is backwards &
forwards compatible
More information
• https://google.github.io/flatbuffers/
• https://github.com/mzaks/
FlatBuffersSchemaEditor
• https://github.com/mzaks/FlatBuffersSwift
• https://twitter.com/iceX33
Questions?
Thank you!

More Related Content

What's hot (20)

PDF
디자인패턴
진화 손
 
PDF
20 prompts for chatGPT that make life easier for developers.pdf
AD Techlogix - Website & Mobile App Development Company
 
PPTX
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
PDF
Kafka on ZFS: Better Living Through Filesystems
confluent
 
PDF
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah
 
PPTX
Shopify Presentation
Burak Eraslan
 
PPTX
Splunk IT Service Intelligence
Georg Knon
 
PDF
Business proposals
letisoles
 
PDF
Writing Continuous Applications with Structured Streaming PySpark API
Databricks
 
PDF
How to Perfect Your Pitch
Guy Kawasaki
 
PDF
Andrii Burlutskyi: Going beyond ABM: power the client buying journey using AI...
Lviv Startup Club
 
PDF
WannaCry - NotPetya Olayları
Alper Başaran
 
PDF
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
PPTX
How the Digital and Physical worlds are merging.
Table19
 
PDF
Hping Kullanarak TCP/IP Paketleriyle Oynama
BGA Cyber Security
 
PDF
Siber Tehdit Avcılığı (Threat Hunting)
BGA Cyber Security
 
PPTX
Using Queryable State for Fun and Profit
Flink Forward
 
PDF
Why You Should Love Public Speaking
Ethos3
 
PDF
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Seunghyun Lee
 
PDF
Seed Financing Landscape - Launch 2019
Mar Hershenson
 
디자인패턴
진화 손
 
20 prompts for chatGPT that make life easier for developers.pdf
AD Techlogix - Website & Mobile App Development Company
 
How to Prepare For a Successful Job Search for 2024
Albert Qian
 
Kafka on ZFS: Better Living Through Filesystems
confluent
 
Introduction and Overview of Apache Kafka, TriHUG July 23, 2013
mumrah
 
Shopify Presentation
Burak Eraslan
 
Splunk IT Service Intelligence
Georg Knon
 
Business proposals
letisoles
 
Writing Continuous Applications with Structured Streaming PySpark API
Databricks
 
How to Perfect Your Pitch
Guy Kawasaki
 
Andrii Burlutskyi: Going beyond ABM: power the client buying journey using AI...
Lviv Startup Club
 
WannaCry - NotPetya Olayları
Alper Başaran
 
5 Public speaking tips from TED - Visualized summary
SpeakerHub
 
How the Digital and Physical worlds are merging.
Table19
 
Hping Kullanarak TCP/IP Paketleriyle Oynama
BGA Cyber Security
 
Siber Tehdit Avcılığı (Threat Hunting)
BGA Cyber Security
 
Using Queryable State for Fun and Profit
Flink Forward
 
Why You Should Love Public Speaking
Ethos3
 
Pinot: Enabling Real-time Analytics Applications @ LinkedIn's Scale
Seunghyun Lee
 
Seed Financing Landscape - Launch 2019
Mar Hershenson
 

Similar to Beyond JSON - An Introduction to FlatBuffers (20)

PDF
Maxim Zaks: Deep dive into data serialisation
mdevtalk
 
PDF
Beyond JSON @ Mobile.Warsaw
Maxim Zaks
 
PDF
Beyond JSON with FlatBuffers
Maxim Zaks
 
PDF
Beyond JSON @ dot swift 2016
Maxim Zaks
 
PDF
3 f6 9a_corba
op205
 
PDF
3 f6 9a_corba
op205
 
PDF
Talk Binary to Me
Maxim Zaks
 
PDF
Data Serialization Using Google Protocol Buffers
William Kibira
 
PDF
Go implementation for Flatdata
Artem Nikitin
 
PDF
Big rewrites without big risks
Flavius Stef
 
PDF
Flavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. Unconference
Mozaic Works
 
PDF
SHARE Interface in Flash Storage for Relational and NoSQL Databases
Farzad Nozarian
 
PDF
Preparing your web services for Android and your Android app for web services...
Droidcon Eastern Europe
 
PPTX
Notes on a High-Performance JSON Protocol
Daniel Austin
 
PDF
Designs, Lessons and Advice from Building Large Distributed Systems
Daehyeok Kim
 
PPTX
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Igor Anishchenko
 
PDF
Big Data Israel Meetup : Couchbase and Big Data
Tugdual Grall
 
PDF
Reinventing the wheel: libmc
Myautsai PAN
 
PDF
Seaside Status Message
Lukas Renggli
 
PDF
Seaside News
ESUG
 
Maxim Zaks: Deep dive into data serialisation
mdevtalk
 
Beyond JSON @ Mobile.Warsaw
Maxim Zaks
 
Beyond JSON with FlatBuffers
Maxim Zaks
 
Beyond JSON @ dot swift 2016
Maxim Zaks
 
3 f6 9a_corba
op205
 
3 f6 9a_corba
op205
 
Talk Binary to Me
Maxim Zaks
 
Data Serialization Using Google Protocol Buffers
William Kibira
 
Go implementation for Flatdata
Artem Nikitin
 
Big rewrites without big risks
Flavius Stef
 
Flavius Ștef: Big Rewrites Without Big Risks at I T.A.K.E. Unconference
Mozaic Works
 
SHARE Interface in Flash Storage for Relational and NoSQL Databases
Farzad Nozarian
 
Preparing your web services for Android and your Android app for web services...
Droidcon Eastern Europe
 
Notes on a High-Performance JSON Protocol
Daniel Austin
 
Designs, Lessons and Advice from Building Large Distributed Systems
Daehyeok Kim
 
Thrift vs Protocol Buffers vs Avro - Biased Comparison
Igor Anishchenko
 
Big Data Israel Meetup : Couchbase and Big Data
Tugdual Grall
 
Reinventing the wheel: libmc
Myautsai PAN
 
Seaside Status Message
Lukas Renggli
 
Seaside News
ESUG
 
Ad

More from Maxim Zaks (18)

PDF
Entity Component System - a different approach to game and app development
Maxim Zaks
 
PDF
Nitty Gritty of Data Serialisation
Maxim Zaks
 
PDF
Wind of change
Maxim Zaks
 
PDF
Data model mal anders
Maxim Zaks
 
PDF
Entity Component System - for App developers
Maxim Zaks
 
PDF
Basics of Computer Science
Maxim Zaks
 
PDF
Entity system architecture with Unity @Unite Europe 2015
Maxim Zaks
 
PDF
UIKonf App & Data Driven Design @swift.berlin
Maxim Zaks
 
PDF
Swift the implicit parts
Maxim Zaks
 
PDF
Currying in Swift
Maxim Zaks
 
PDF
Promise of an API
Maxim Zaks
 
PDF
96% macoun 2013
Maxim Zaks
 
PDF
Diagnose of Agile @ Wooga 04.2013
Maxim Zaks
 
PDF
Start playing @ mobile.cologne 2013
Maxim Zaks
 
PDF
Under Cocos2D Tree @mdvecon 2013
Maxim Zaks
 
PDF
Don’t do Agile, be Agile @NSConf 2013
Maxim Zaks
 
PDF
Test Essentials @mdevcon 2012
Maxim Zaks
 
PDF
Vergiss Java konzentrier Dich auf Script @ OOP2013
Maxim Zaks
 
Entity Component System - a different approach to game and app development
Maxim Zaks
 
Nitty Gritty of Data Serialisation
Maxim Zaks
 
Wind of change
Maxim Zaks
 
Data model mal anders
Maxim Zaks
 
Entity Component System - for App developers
Maxim Zaks
 
Basics of Computer Science
Maxim Zaks
 
Entity system architecture with Unity @Unite Europe 2015
Maxim Zaks
 
UIKonf App & Data Driven Design @swift.berlin
Maxim Zaks
 
Swift the implicit parts
Maxim Zaks
 
Currying in Swift
Maxim Zaks
 
Promise of an API
Maxim Zaks
 
96% macoun 2013
Maxim Zaks
 
Diagnose of Agile @ Wooga 04.2013
Maxim Zaks
 
Start playing @ mobile.cologne 2013
Maxim Zaks
 
Under Cocos2D Tree @mdvecon 2013
Maxim Zaks
 
Don’t do Agile, be Agile @NSConf 2013
Maxim Zaks
 
Test Essentials @mdevcon 2012
Maxim Zaks
 
Vergiss Java konzentrier Dich auf Script @ OOP2013
Maxim Zaks
 
Ad

Recently uploaded (20)

PDF
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
PPTX
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
PDF
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
PDF
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
PPTX
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
PPTX
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
PPTX
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
PDF
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
PPTX
Tally software_Introduction_Presentation
AditiBansal54083
 
PDF
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
PDF
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
PDF
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
PPTX
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
PPTX
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
PDF
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
PPTX
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
PDF
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
PDF
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
PPTX
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 
SAP Firmaya İade ABAB Kodları - ABAB ile yazılmıl hazır kod örneği
Salih Küçük
 
Transforming Mining & Engineering Operations with Odoo ERP | Streamline Proje...
SatishKumar2651
 
Unlock Efficiency with Insurance Policy Administration Systems
Insurance Tech Services
 
Alexander Marshalov - How to use AI Assistants with your Monitoring system Q2...
VictoriaMetrics
 
Hardware(Central Processing Unit ) CU and ALU
RizwanaKalsoom2
 
In From the Cold: Open Source as Part of Mainstream Software Asset Management
Shane Coughlan
 
Empowering Asian Contributions: The Rise of Regional User Groups in Open Sour...
Shane Coughlan
 
Tally_Basic_Operations_Presentation.pptx
AditiBansal54083
 
Build It, Buy It, or Already Got It? Make Smarter Martech Decisions
bbedford2
 
Tally software_Introduction_Presentation
AditiBansal54083
 
4K Video Downloader Plus Pro Crack for MacOS New Download 2025
bashirkhan333g
 
vMix Pro 28.0.0.42 Download vMix Registration key Bundle
kulindacore
 
Alarm in Android-Scheduling Timed Tasks Using AlarmManager in Android.pdf
Nabin Dhakal
 
Help for Correlations in IBM SPSS Statistics.pptx
Version 1 Analytics
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pptx
Varsha Nayak
 
Why Businesses Are Switching to Open Source Alternatives to Crystal Reports.pdf
Varsha Nayak
 
OpenChain @ OSS NA - In From the Cold: Open Source as Part of Mainstream Soft...
Shane Coughlan
 
Revenue streams of the Wazirx clone script.pdf
aaronjeffray
 
Top Agile Project Management Tools for Teams in 2025
Orangescrum
 
ChiSquare Procedure in IBM SPSS Statistics Version 31.pptx
Version 1 Analytics
 

Beyond JSON - An Introduction to FlatBuffers