SlideShare a Scribd company logo
1 of 74
50 Shades of
Data
how, when and why
Big, Fast, Relational,
NoSQL, Elastic,
Event, CQRS
On the many types of
data, data stores and data
usages
50 Shades of Data 1
µ
µ
Lucas Jellema, CTO of AMIS
CodeOne 2018, San Francisco, USA
Lucas Jellema
Architect / Developer
1994 started in IT at Oracle
2002 joined AMIS
Currently CTO & Solution Architect
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable 2
Overview
• Multiple types of data
• Stored and processed in different ways
• Same data sometimes used in multiple, different ways
• Stored and processed multiple times – optimized for each use case
• The meaning of some terms cannot be taken too literally
• Real Time and Fresh
• Integrity and Truth
• Consistency and transactions
• Understand your data
• Meta: What does it mean?
• Master: Where is the source?
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable 3
Tweet!
#codeone
Select from <stream of tweet events>
select text
, author
, timestamp
from tweets
Where tag = 'codeone'
<--- streaming data
Select Running Count
from <stream of tweet events>
select tag
, count(*) tweet_count
from tweets
group
by tag
Tweets on #JEEConf
#java #oraclecode
Tweets
Topic
Oracle Cloud
Event HubApplication
Container
TWEET_COUNT
Topic
Running
Tweets
Aggregation
Client
Client
Client
Client
IoT metrics from
hundreds of devices
User actions & click
events from webshop
Live Traffic EventsMicroservices chatter
Social Media events
(Facebook,
Whatsapp, …)
IT Operations –
monitoring metrics
µ
µ
µ
µ
Tweets on #JEEConf
#java #oraclecode
Tweets
Topic
Oracle Cloud
Event HubApplication
Container
TWEET_COUNT
Topic
Running
Tweets
Aggregation
Client
Client
Client
Client
IoT metrics from
hundreds of devices
User actions & click
events from webshop
Live Traffic EventsMicroservices chatter
Social Media events
(Facebook,
Whatsapp, …)
IT Operations –
monitoring metrics
µ
µ
µ
µ
Real Time
live | fresh | instantaneous |
on line | synchronous
50 Shades of Data 11
50 Shades of Data 12
50 Shades of Data 13
< 10
ms
< 100
ms
< 500
ms
<3
secs
> 3
secs
50 Shades of Data 14
Machine Response Human Reaction
14
< 10
ms
< 100
ms
< 500
ms
<3
secs
> 3
secs
50 Shades of Data 15
Machine Response Human Reaction
15
Integrity
• Madelon’s pasje
• Real world vs World of Databases
• Relax!
• Anomaly detection
50 Shades of Data 17
Data Constraints
to protect integrity
• Allowable values
• Mandatory attributes
• (Foreign Key) References
• NULL
• Constraints on
• type
• length
• format
• Spelling
• Character encoding
Data is representation of
the known real world
• How useful is it to enforce data integrity?
Data Integrity
• Why?
• Is it about truth?
• About regulations and by-the-book?
• Allow IT systems to run smoothly and not get confused?
• About auditability and non-repudiation?
• What about the real world?
• Data in IT is just a representation;
if the world is not by the book – what should IT do?
50 Shades of Data 21
Anomaly Detection
• Find fishy values and derive business integrity rules by scanning data
50 Shades of Data 22
BOL - CQRS
50 Shades of Data 23
Books Online - WebShop
50 Shades of Data 24
Products
Product updates
firewall
Data manipulation
Data Quality (enforcement)
<10K transactions
Batch jobs next to online
Speed is nice
Read only
On line
Speed is crucial
XHTML & JSON
> 5M visits
Webshop visits
- searches
- product details
- Orders
50 Shades of Data 25
Products
Products
Products
Webshop visits
- searches
- product details
- Orders
firewall
Data manipulation
Data Quality (enforcement)
<10K transactions
Batch jobs next to online
Speed is nice
Read only
On line
Speed is crucial
XHTML & JSON
> 1M visits
DMZ
Read only
JSON documents
Images
Text Search
Scale Horizontally
Stale but consistent
Products
Nightly generation
Product updates
Hoe integreer je applicaties en data? 26
Products
Data Manipulation
Data
Retrieval
Hoe integreer je applicaties en data? 27
Special
Products
Product
Clusters
ProductsData Manipulation
Data Retrieval
Food
Stuff
Toys
Quick Product
Search Index
Product Store in
SaaS app
Comand Query Responsbility Segregation = CQRS
50 Shades of Data 28
Special
Products
Product Clusters
ProductsData Manipulation
Data Retrieval
Food Stuff
Toys
Quick Product Search
Index
Product Store in
SaaS app
Detect changes
Extract Data
Transport Data
Convert Data
Apply Data
From C to Q
• How quickly?
• How frequently?
• How reliably?
• How atomically?
•
50 Shades of Data 29
Products
Quick Product Search
Index
50 Shades of Data 30
From C to Q
• How quickly?
• How frequently?
• How reliably?
• How atomic?
•
• Data Authorization Considerations
• Locations & Connectivity
• Full resynch | restore of Query Store
50 Shades of Data 31
Products
Quick Product Search
Index
[let go of] The Holy Grail of Normalization
• Normalize to prevent
• data redundancy
• discrepancies
(split brain)
• storage waste
50 Shades of Data 32
CQRS is not new
50 Shades of Data 33
Event Sourcing Driving CQRS
50 Shades of Data 34
Events Event Store
Current State
accountId:
123
amount: 10
Owner: Jane Doe
Event Sourcing Driving CQRS
50 Shades of Data 35
Events Event Store
Current State
Other State Aggregate
Distributed Database with Event Sourcing & Current State
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable36
World State
SQL is not good at anything
• But it sucks at nothing
Graph Database
• Natural fit during development
• Superior (10-1000 times better)
performance
Person liked
by anyone
liked by Bob
Find People
liked by
anyone liked
by Bob
Find People
liked by
anyone liked
by Bob
From relational SQL
to Graph query
SQL vs NoSQL
SQL vs NoSQL
ACID vs BASE
Relational vs …
Relational Databases
• Based on relational model of data (E.F. Codd), a mathematical foundation
• Uses SQL for query, DML and DDL
• Transactions are ACID (Atomicity, Consistency, Isolation, Durability)
• All or nothing
• Constraint Compliant
• Individual experience
[in a multi-session environment]
(aka concurrency)
• Down does not hurt
ACID comes at a cost – performance & scalability
• Transaction results have to be persisted [before the transaction completes]
in order to guarantee D
• Concurrency requires some degree of locking (and multi-versioning) in order
to have I
• Constraint compliance (unique key, foreign key) means all data hangs
together (as do all transactions)
in order to have C
• Two-phase commit (across multiple participants)
introduces complexity, dependencies and delays,
yet required for A
50 Shades of Data 45
Types of NoSQL
50 Shades of Data 48
NoSQL n’est pas No SQL
50 Shades of Data 49
50 Shades of Data 50
When things were simple
RDBMS
SQL
ACID
Data
files
Log
Files
Backup
Backup
Backup
SAN
And then stuff happened
Middle Tier:
Java EE (Stateful) application
Client Tier:
Browser
Client Tier:
Browser
Client Tier:
Browser
Mobile App
(offline)
Mobile App
(offline)
Mobile App
(offline)
Data
Warehouse
OO,
XML,
JSON
Content
Management
Big Data
Fast Data
API
API
API
µ λ
50 Shades of Data 53
50 Shades of Data
Oracle Database
SQL
RDBMS
ACID
50 Shades of Data 55
http
IoT Fast Data
Ingestion
Sharding
http
Machine Learning
No
SQL
Big Data
SQL
Multitenant
(Pluggable Database) Architecture
Flashback
50 Shades of Data 56
50 Shades of Data 57
50 Shades of Data 58
50 Shades of Data 59
50 Shades of Data 60
http
IoT Fast Data
Ingestion
Sharding
http
Machine Learning
No
SQL
Big Data
SQL
Multitenant
(Pluggable Database) Architecture
Flashback
50 Shades of Data 61
Oracle Database XE – eXpress Edition
• Current version: XE 11gR2
• Coming in October 2018: XE 18c, with yearly releases (19c, 20c, …)
• All functionality of single instance Oracle Database Enterprise Edition
plus Extra Options
• (including R, Machine Learning, Spatial, Compression, Multi Tenant, Partitioning)
• Code and Data Compatible with other editions – including plug/unplug
• Resource Limitations for 18c:
• 2 CPUs
• 2 GB of memory
• 12 GB of disk space (using Compression effectively 40 GB of data)
• No patches or support
50 Shades of Data 62
Final Demo
• Microservice
50 Shades of Data 68
Microservices
• Agile | Flexible | Scalable | (Re)Deployable
• Independent | Decoupled | Isolated
• Communicate asynchronously, via events
• Have their own private bounded context
– the data they require to function
• Their lifeblood
50 Shades of Data 69
Microservices State
Cache
RDBMS
Document
Store
NoSQL
Generic Platform for running microservices
Event Hub
Big Data
Block
Storage
LDAP
Bounded context of microservices
• A micoservice needs to be able to run independently
• It needs to contain & own all data required to run
• It cannot depend on other microservices
API
Customer
APIUI
OrderCustomerModified event
Order Microservice
Demo – Maintaining Derived Data in Bounded Context
50 Shades of Data 72
Application
Container
Customer Microservice
Customers
Topic
Event Hub
Application
Container
DBaaS
Wrap Up
74
usage
Total Cost of Data Ownership
authorization
distribution
formatvolatility volume
ACID demands
availability
freshness requirements
(staleness allowance)
location
speed
ownership
required consistency
integrity
query patterns
50 Shades of Data 77
Summary
• Multiple types of data
• Stored and processed in different ways
• Same data sometimes used in multiple, different ways
• Stored and processed multiple times – optimized for each use case
• The meaning of some terms cannot be taken too literally
• Real Time and Fresh
• Integrity and Truth
• Consistency and transactions
• Understand your data
• Meta: What does it mean?
• Master: Where is the source?
Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable 78
50 Shades of Data 79
50 Shades of Data 80
Wrap Up
DATA
DATADATA
Thank you
Dank je wel
• Blog: technology.amis.nl
• Email: lucas.jellema@amis.nl
• : @lucasjellema
• : lucas-jellema
• : www.amis.nl, info@amis.nl
https://github.com/lucasjellema

More Related Content

What's hot

Oracle GoldenGate 12c - Real Time Access to Real Time Information
Oracle GoldenGate 12c - Real Time Access to Real Time InformationOracle GoldenGate 12c - Real Time Access to Real Time Information
Oracle GoldenGate 12c - Real Time Access to Real Time Information
Asha BG
 

What's hot (20)

Blockchain for the DBA and Data Professional
Blockchain for the DBA and Data ProfessionalBlockchain for the DBA and Data Professional
Blockchain for the DBA and Data Professional
 
Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications Enabling Telco to Build and Run Modern Applications
Enabling Telco to Build and Run Modern Applications
 
Whitepaper: Volume Testing Thick Clients and Databases
Whitepaper:  Volume Testing Thick Clients and DatabasesWhitepaper:  Volume Testing Thick Clients and Databases
Whitepaper: Volume Testing Thick Clients and Databases
 
How We Test MongoDB: Evergreen
How We Test MongoDB: EvergreenHow We Test MongoDB: Evergreen
How We Test MongoDB: Evergreen
 
Oracle GoldenGate 12c - Real Time Access to Real Time Information
Oracle GoldenGate 12c - Real Time Access to Real Time InformationOracle GoldenGate 12c - Real Time Access to Real Time Information
Oracle GoldenGate 12c - Real Time Access to Real Time Information
 
NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020NoSQL Endgame DevoxxUA Conference 2020
NoSQL Endgame DevoxxUA Conference 2020
 
the Data World Distilled
the Data World Distilledthe Data World Distilled
the Data World Distilled
 
Top 5 Considerations for a Big Data Solution
Top 5 Considerations for a Big Data SolutionTop 5 Considerations for a Big Data Solution
Top 5 Considerations for a Big Data Solution
 
Three signs your architecture is too small for big data. Camp IT December 2014
Three signs your architecture is too small for big data.  Camp IT December 2014Three signs your architecture is too small for big data.  Camp IT December 2014
Three signs your architecture is too small for big data. Camp IT December 2014
 
Back to school: Big Data IDEA 101
Back to school: Big Data IDEA 101Back to school: Big Data IDEA 101
Back to school: Big Data IDEA 101
 
Unlocking Operational Intelligence from the Data Lake
Unlocking Operational Intelligence from the Data LakeUnlocking Operational Intelligence from the Data Lake
Unlocking Operational Intelligence from the Data Lake
 
Data Vault 2.0 Demystified: East Coast Tour
Data Vault 2.0 Demystified: East Coast TourData Vault 2.0 Demystified: East Coast Tour
Data Vault 2.0 Demystified: East Coast Tour
 
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
AMIS Oracle OpenWorld & CodeOne Review - Pillar 2 - Custom Application Develo...
 
Webinar: SQL for Machine Data?
Webinar: SQL for Machine Data?Webinar: SQL for Machine Data?
Webinar: SQL for Machine Data?
 
Sizing Your MongoDB Cluster
Sizing Your MongoDB ClusterSizing Your MongoDB Cluster
Sizing Your MongoDB Cluster
 
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...DEVNET-1140	InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
DEVNET-1140 InterCloud Mapreduce and Spark Workload Migration and Sharing: Fi...
 
MongoATL: How Sourceforge is Using MongoDB
MongoATL: How Sourceforge is Using MongoDBMongoATL: How Sourceforge is Using MongoDB
MongoATL: How Sourceforge is Using MongoDB
 
EclipseCon 2021 NoSQL Endgame
EclipseCon 2021 NoSQL EndgameEclipseCon 2021 NoSQL Endgame
EclipseCon 2021 NoSQL Endgame
 
GraphTour - Albelli: Running Neo4j on a large scale image platform
GraphTour - Albelli: Running Neo4j on a large scale image platformGraphTour - Albelli: Running Neo4j on a large scale image platform
GraphTour - Albelli: Running Neo4j on a large scale image platform
 
Cloud Big Data Architectures
Cloud Big Data ArchitecturesCloud Big Data Architectures
Cloud Big Data Architectures
 

Similar to 50 Shades of Data – how, when and why Big,Relational,NoSQL,Elastic,Graph,Event (CodeOne 2018, San Francisco)

50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...
50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...
50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...
Lucas Jellema
 
Data Privacy at Scale
Data Privacy at ScaleData Privacy at Scale
Data Privacy at Scale
DataWorks Summit
 
Digital_IOT_(Microsoft_Solution).pdf
Digital_IOT_(Microsoft_Solution).pdfDigital_IOT_(Microsoft_Solution).pdf
Digital_IOT_(Microsoft_Solution).pdf
ssuserd23711
 

Similar to 50 Shades of Data – how, when and why Big,Relational,NoSQL,Elastic,Graph,Event (CodeOne 2018, San Francisco) (20)

50 Shades of Data - JEEConf 2018 - Kyiv, Ukraine
50 Shades of Data - JEEConf 2018 - Kyiv, Ukraine50 Shades of Data - JEEConf 2018 - Kyiv, Ukraine
50 Shades of Data - JEEConf 2018 - Kyiv, Ukraine
 
50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...
50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...
50 Shades of Data - from 0 and 1 to a rich data spectrum - RMOUG 2021 Trainin...
 
Data Services Marketplace
Data Services MarketplaceData Services Marketplace
Data Services Marketplace
 
Survey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data LandscapeSurvey of the Microsoft Azure Data Landscape
Survey of the Microsoft Azure Data Landscape
 
Demystifying Data Warehouse as a Service (DWaaS)
Demystifying Data Warehouse as a Service (DWaaS)Demystifying Data Warehouse as a Service (DWaaS)
Demystifying Data Warehouse as a Service (DWaaS)
 
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAsOracle Database Performance Tuning Advanced Features and Best Practices for DBAs
Oracle Database Performance Tuning Advanced Features and Best Practices for DBAs
 
Scaling Systems: Architectures that grow
Scaling Systems: Architectures that growScaling Systems: Architectures that grow
Scaling Systems: Architectures that grow
 
Iot cloud service v2.0
Iot cloud service v2.0Iot cloud service v2.0
Iot cloud service v2.0
 
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander ZaitsevClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
ClickHouse in Real Life. Case Studies and Best Practices, by Alexander Zaitsev
 
Apache Druid 101
Apache Druid 101Apache Druid 101
Apache Druid 101
 
A Key to Real-time Insights in a Post-COVID World (ASEAN)
A Key to Real-time Insights in a Post-COVID World (ASEAN)A Key to Real-time Insights in a Post-COVID World (ASEAN)
A Key to Real-time Insights in a Post-COVID World (ASEAN)
 
Data Privacy at Scale
Data Privacy at ScaleData Privacy at Scale
Data Privacy at Scale
 
Neo4j in Depth
Neo4j in DepthNeo4j in Depth
Neo4j in Depth
 
Houd controle over uw data
Houd controle over uw dataHoud controle over uw data
Houd controle over uw data
 
Are we there Yet?? (The long journey of Migrating from close source to opens...
Are we there Yet?? (The long journey of Migrating from close source to opens...Are we there Yet?? (The long journey of Migrating from close source to opens...
Are we there Yet?? (The long journey of Migrating from close source to opens...
 
Data Modeling for Security, Privacy and Data Protection
Data Modeling for Security, Privacy and Data ProtectionData Modeling for Security, Privacy and Data Protection
Data Modeling for Security, Privacy and Data Protection
 
Accelerating Business Intelligence Solutions with Microsoft Azure pass
Accelerating Business Intelligence Solutions with Microsoft Azure   passAccelerating Business Intelligence Solutions with Microsoft Azure   pass
Accelerating Business Intelligence Solutions with Microsoft Azure pass
 
KoprowskiT_SQLSatMoscow_WASDforBeginners
KoprowskiT_SQLSatMoscow_WASDforBeginnersKoprowskiT_SQLSatMoscow_WASDforBeginners
KoprowskiT_SQLSatMoscow_WASDforBeginners
 
Architecting Your Own DBaaS in a Private Cloud with EM12c
Architecting Your Own DBaaS in a Private Cloud with EM12cArchitecting Your Own DBaaS in a Private Cloud with EM12c
Architecting Your Own DBaaS in a Private Cloud with EM12c
 
Digital_IOT_(Microsoft_Solution).pdf
Digital_IOT_(Microsoft_Solution).pdfDigital_IOT_(Microsoft_Solution).pdf
Digital_IOT_(Microsoft_Solution).pdf
 

More from Lucas Jellema

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
Lucas Jellema
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Lucas Jellema
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Lucas Jellema
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
Lucas Jellema
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
Lucas Jellema
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Lucas Jellema
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Lucas Jellema
 

More from Lucas Jellema (20)

Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...Introduction to web application development with Vue (for absolute beginners)...
Introduction to web application development with Vue (for absolute beginners)...
 
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
Making the Shift Left - Bringing Ops to Dev before bringing applications to p...
 
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
Lightweight coding in powerful Cloud Development Environments (DigitalXchange...
 
Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...Apache Superset - open source data exploration and visualization (Conclusion ...
Apache Superset - open source data exploration and visualization (Conclusion ...
 
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
CONNECTING THE REAL WORLD TO ENTERPRISE IT – HOW IoT DRIVES OUR ENERGY TRANSI...
 
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...Help me move away from Oracle - or not?!  (Oracle Community Tour EMEA - LVOUG...
Help me move away from Oracle - or not?! (Oracle Community Tour EMEA - LVOUG...
 
Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!Op je vingers tellen... tot 1000!
Op je vingers tellen... tot 1000!
 
IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)IoT - from prototype to enterprise platform (DigitalXchange 2022)
IoT - from prototype to enterprise platform (DigitalXchange 2022)
 
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
Who Wants to Become an IT Architect-A Look at the Bigger Picture - DigitalXch...
 
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
Steampipe - use SQL to retrieve data from cloud, platforms and files (Code Ca...
 
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
Automation of Software Engineering with OCI DevOps Build and Deployment Pipel...
 
Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...Introducing Dapr.io - the open source personal assistant to microservices and...
Introducing Dapr.io - the open source personal assistant to microservices and...
 
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
How and Why you can and should Participate in Open Source Projects (AMIS, Sof...
 
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
Microservices, Apache Kafka, Node, Dapr and more - Part Two (Fontys Hogeschoo...
 
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
Microservices, Node, Dapr and more - Part One (Fontys Hogeschool, Spring 2022)
 
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
6Reinventing Oracle Systems in a Cloudy World (RMOUG Trainingdays, February 2...
 
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
Help me move away from Oracle! (RMOUG Training Days 2022, February 2022)
 
Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)Tech Talks 101 - DevOps (jan 2022)
Tech Talks 101 - DevOps (jan 2022)
 
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
Conclusion Code Cafe - Microcks for Mocking and Testing Async APIs (January 2...
 
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...Cloud Native Application Development - build fast, low TCO, scalable & agile ...
Cloud Native Application Development - build fast, low TCO, scalable & agile ...
 

Recently uploaded

%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
masabamasaba
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Medical / Health Care (+971588192166) Mifepristone and Misoprostol tablets 200mg
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 

Recently uploaded (20)

OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 

50 Shades of Data – how, when and why Big,Relational,NoSQL,Elastic,Graph,Event (CodeOne 2018, San Francisco)

  • 1. 50 Shades of Data how, when and why Big, Fast, Relational, NoSQL, Elastic, Event, CQRS On the many types of data, data stores and data usages 50 Shades of Data 1 µ µ Lucas Jellema, CTO of AMIS CodeOne 2018, San Francisco, USA
  • 2. Lucas Jellema Architect / Developer 1994 started in IT at Oracle 2002 joined AMIS Currently CTO & Solution Architect Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable 2
  • 3. Overview • Multiple types of data • Stored and processed in different ways • Same data sometimes used in multiple, different ways • Stored and processed multiple times – optimized for each use case • The meaning of some terms cannot be taken too literally • Real Time and Fresh • Integrity and Truth • Consistency and transactions • Understand your data • Meta: What does it mean? • Master: Where is the source? Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable 3
  • 5. Select from <stream of tweet events> select text , author , timestamp from tweets Where tag = 'codeone' <--- streaming data
  • 6. Select Running Count from <stream of tweet events> select tag , count(*) tweet_count from tweets group by tag
  • 7. Tweets on #JEEConf #java #oraclecode Tweets Topic Oracle Cloud Event HubApplication Container TWEET_COUNT Topic Running Tweets Aggregation Client Client Client Client IoT metrics from hundreds of devices User actions & click events from webshop Live Traffic EventsMicroservices chatter Social Media events (Facebook, Whatsapp, …) IT Operations – monitoring metrics µ µ µ µ
  • 8. Tweets on #JEEConf #java #oraclecode Tweets Topic Oracle Cloud Event HubApplication Container TWEET_COUNT Topic Running Tweets Aggregation Client Client Client Client IoT metrics from hundreds of devices User actions & click events from webshop Live Traffic EventsMicroservices chatter Social Media events (Facebook, Whatsapp, …) IT Operations – monitoring metrics µ µ µ µ
  • 9. Real Time live | fresh | instantaneous | on line | synchronous
  • 10.
  • 11. 50 Shades of Data 11
  • 12. 50 Shades of Data 12
  • 13. 50 Shades of Data 13
  • 14. < 10 ms < 100 ms < 500 ms <3 secs > 3 secs 50 Shades of Data 14 Machine Response Human Reaction 14
  • 15. < 10 ms < 100 ms < 500 ms <3 secs > 3 secs 50 Shades of Data 15 Machine Response Human Reaction 15
  • 16. Integrity • Madelon’s pasje • Real world vs World of Databases • Relax! • Anomaly detection 50 Shades of Data 17
  • 17. Data Constraints to protect integrity • Allowable values • Mandatory attributes • (Foreign Key) References • NULL • Constraints on • type • length • format • Spelling • Character encoding
  • 18. Data is representation of the known real world • How useful is it to enforce data integrity?
  • 19. Data Integrity • Why? • Is it about truth? • About regulations and by-the-book? • Allow IT systems to run smoothly and not get confused? • About auditability and non-repudiation? • What about the real world? • Data in IT is just a representation; if the world is not by the book – what should IT do?
  • 20. 50 Shades of Data 21
  • 21. Anomaly Detection • Find fishy values and derive business integrity rules by scanning data 50 Shades of Data 22
  • 22. BOL - CQRS 50 Shades of Data 23
  • 23. Books Online - WebShop 50 Shades of Data 24 Products Product updates firewall Data manipulation Data Quality (enforcement) <10K transactions Batch jobs next to online Speed is nice Read only On line Speed is crucial XHTML & JSON > 5M visits Webshop visits - searches - product details - Orders
  • 24. 50 Shades of Data 25 Products Products Products Webshop visits - searches - product details - Orders firewall Data manipulation Data Quality (enforcement) <10K transactions Batch jobs next to online Speed is nice Read only On line Speed is crucial XHTML & JSON > 1M visits DMZ Read only JSON documents Images Text Search Scale Horizontally Stale but consistent Products Nightly generation Product updates
  • 25. Hoe integreer je applicaties en data? 26 Products Data Manipulation Data Retrieval
  • 26. Hoe integreer je applicaties en data? 27 Special Products Product Clusters ProductsData Manipulation Data Retrieval Food Stuff Toys Quick Product Search Index Product Store in SaaS app
  • 27. Comand Query Responsbility Segregation = CQRS 50 Shades of Data 28 Special Products Product Clusters ProductsData Manipulation Data Retrieval Food Stuff Toys Quick Product Search Index Product Store in SaaS app Detect changes Extract Data Transport Data Convert Data Apply Data
  • 28. From C to Q • How quickly? • How frequently? • How reliably? • How atomically? • 50 Shades of Data 29 Products Quick Product Search Index
  • 29. 50 Shades of Data 30
  • 30. From C to Q • How quickly? • How frequently? • How reliably? • How atomic? • • Data Authorization Considerations • Locations & Connectivity • Full resynch | restore of Query Store 50 Shades of Data 31 Products Quick Product Search Index
  • 31. [let go of] The Holy Grail of Normalization • Normalize to prevent • data redundancy • discrepancies (split brain) • storage waste 50 Shades of Data 32
  • 32. CQRS is not new 50 Shades of Data 33
  • 33. Event Sourcing Driving CQRS 50 Shades of Data 34 Events Event Store Current State accountId: 123 amount: 10 Owner: Jane Doe
  • 34. Event Sourcing Driving CQRS 50 Shades of Data 35 Events Event Store Current State Other State Aggregate
  • 35. Distributed Database with Event Sourcing & Current State Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable36 World State
  • 36. SQL is not good at anything • But it sucks at nothing
  • 37. Graph Database • Natural fit during development • Superior (10-1000 times better) performance Person liked by anyone liked by Bob Find People liked by anyone liked by Bob Find People liked by anyone liked by Bob
  • 38. From relational SQL to Graph query
  • 40. SQL vs NoSQL ACID vs BASE Relational vs …
  • 41. Relational Databases • Based on relational model of data (E.F. Codd), a mathematical foundation • Uses SQL for query, DML and DDL • Transactions are ACID (Atomicity, Consistency, Isolation, Durability) • All or nothing • Constraint Compliant • Individual experience [in a multi-session environment] (aka concurrency) • Down does not hurt
  • 42. ACID comes at a cost – performance & scalability • Transaction results have to be persisted [before the transaction completes] in order to guarantee D • Concurrency requires some degree of locking (and multi-versioning) in order to have I • Constraint compliance (unique key, foreign key) means all data hangs together (as do all transactions) in order to have C • Two-phase commit (across multiple participants) introduces complexity, dependencies and delays, yet required for A
  • 43. 50 Shades of Data 45
  • 45. 50 Shades of Data 48
  • 46. NoSQL n’est pas No SQL 50 Shades of Data 49
  • 47. 50 Shades of Data 50
  • 48. When things were simple RDBMS SQL ACID Data files Log Files Backup Backup Backup SAN
  • 49. And then stuff happened Middle Tier: Java EE (Stateful) application Client Tier: Browser Client Tier: Browser Client Tier: Browser Mobile App (offline) Mobile App (offline) Mobile App (offline) Data Warehouse OO, XML, JSON Content Management Big Data Fast Data API API API µ λ
  • 50. 50 Shades of Data 53
  • 51. 50 Shades of Data Oracle Database SQL RDBMS ACID
  • 52. 50 Shades of Data 55 http IoT Fast Data Ingestion Sharding http Machine Learning No SQL Big Data SQL Multitenant (Pluggable Database) Architecture Flashback
  • 53. 50 Shades of Data 56
  • 54. 50 Shades of Data 57
  • 55. 50 Shades of Data 58
  • 56. 50 Shades of Data 59
  • 57. 50 Shades of Data 60 http IoT Fast Data Ingestion Sharding http Machine Learning No SQL Big Data SQL Multitenant (Pluggable Database) Architecture Flashback
  • 58. 50 Shades of Data 61
  • 59. Oracle Database XE – eXpress Edition • Current version: XE 11gR2 • Coming in October 2018: XE 18c, with yearly releases (19c, 20c, …) • All functionality of single instance Oracle Database Enterprise Edition plus Extra Options • (including R, Machine Learning, Spatial, Compression, Multi Tenant, Partitioning) • Code and Data Compatible with other editions – including plug/unplug • Resource Limitations for 18c: • 2 CPUs • 2 GB of memory • 12 GB of disk space (using Compression effectively 40 GB of data) • No patches or support 50 Shades of Data 62
  • 60. Final Demo • Microservice 50 Shades of Data 68
  • 61. Microservices • Agile | Flexible | Scalable | (Re)Deployable • Independent | Decoupled | Isolated • Communicate asynchronously, via events • Have their own private bounded context – the data they require to function • Their lifeblood 50 Shades of Data 69
  • 62. Microservices State Cache RDBMS Document Store NoSQL Generic Platform for running microservices Event Hub Big Data Block Storage LDAP
  • 63. Bounded context of microservices • A micoservice needs to be able to run independently • It needs to contain & own all data required to run • It cannot depend on other microservices API Customer APIUI OrderCustomerModified event
  • 64. Order Microservice Demo – Maintaining Derived Data in Bounded Context 50 Shades of Data 72 Application Container Customer Microservice Customers Topic Event Hub Application Container DBaaS
  • 66. 74
  • 67.
  • 68. usage Total Cost of Data Ownership authorization distribution formatvolatility volume ACID demands availability freshness requirements (staleness allowance) location speed ownership required consistency integrity query patterns
  • 69. 50 Shades of Data 77
  • 70. Summary • Multiple types of data • Stored and processed in different ways • Same data sometimes used in multiple, different ways • Stored and processed multiple times – optimized for each use case • The meaning of some terms cannot be taken too literally • Real Time and Fresh • Integrity and Truth • Consistency and transactions • Understand your data • Meta: What does it mean? • Master: Where is the source? Implementing Microservices on Oracle Cloud: Open, Manageable, Polyglot, and Scalable 78
  • 71. 50 Shades of Data 79
  • 72. 50 Shades of Data 80
  • 74. Thank you Dank je wel • Blog: technology.amis.nl • Email: lucas.jellema@amis.nl • : @lucasjellema • : lucas-jellema • : www.amis.nl, info@amis.nl https://github.com/lucasjellema

Editor's Notes

  1. Fast data arrives in real time and potentially high volume. Rapid processing, filtering and aggregation is required to ensure timely reaction and actual information in user interfaces. Doing so is a challenge, make this happen in a scalable and reliable fashion is even more interesting. This session introduces Apache Kafka as the scalable event bus that takes care of the events as they flow in and Kafka Streams and KSQL for the streaming analytics. Both Java and Node applications are demonstrated that interact with Kafka and leverage Server Sent Events and WebSocket channels to update the Web UI in real time. User activity performed by the audience in the Web UI is processed by the Kafka powered back end and results in live updates on all clients. Fast data arrives in real time and potentially high volume. Rapid processing, filtering and aggregation is required to ensure timely reaction and actual information in user interfaces. Doing so is a challenge, make this happen in a scalable and reliable fashion is even more interesting. This session introduces Apache Kafka as the scalable event bus that takes care of the events as they flow in and Kafka Streams for the streaming analytics. Both Java and Node applications are demonstrated that interact with Kafka and leverage Server Sent Events and WebSocket channels to update the Web UI in real time. User activity performed by the audience in the Web UI is processed by the Kafka powered back end and results in live updates on all clients. Introducing the challenge: fast data, scalable and decoupled event handling, streaming analytics Introduction of Kafka demo of Producing to and consuming from Kafka in Java and Nodejs clients Intro Kafka Stream API for streaming analytics Demo streaming analytics from java client Intro of web ui: HTML 5, WebSocket channel and SSE listener Demo of Push from server to Web UI - in general End to end flow: - IFTTT picks up Tweets and pushed them to an API that hands them to Kafka Topic. - The Java application Consumes these events, performs Streaming Analytics (grouped by hashtag and author and time window) and counts them; the aggregation results are produced to Kafka - The NodeJS application consumes these aggregation results and pushes them to Web UI - The WebUI displays the selected Tweets along with the aggregation results - in the Web UI, users can LIKE and RATE the tweets; each like or rating is sent to the server and produced to Kafka; these events are processed too through Stream Analytics and result in updated Like counts and Average Rating results; these are then pushed to all clients; this means that the audience can Tweet, see the tweet appear in the web ui on their own device, rate & like and see the ratings and like count update in real time
  2. https://specify.io/concepts/microservices
  3. https://specify.io/concepts/microservices
  4. https://specify.io/concepts/microservices
  5. 3d anomaly detection
  6. Data manipulation and retrieval in separate places (physical data proliferation) Query store is optimized for consumers Level of detail, format, filters applied For performance and scalability, independence, productivity lower license fees and lower TCO, security
  7. No Event Sourcing No events (?) No green field Packages Applications/SaaS Databases (RDBMS, NoSQL) getting changes from applications directly Challenges – at scale, with enough speed and consistently: do not let query store get into an exposed state that could not exist/be right! Detect relevant changes Extract relevant changes Transport Convert Apply in correct order and reliably (no lost events) Note: after detect and extract, an event can be published
  8. https://www.slideshare.net/LorenzoNicora/from-c-to-q-one-event-at-the-time-event-sourcing-illustrated
  9. Events are immutable facts Current state (active record) is derived from sum of events Read optimized aggregates are created for specific use case – based on events and rebuildable at any time
  10. Events are immutable facts Current state (active record) is derived from sum of events Read optimized aggregates are created for specific use case – based on events and rebuildable at any time
  11. Blockchain!
  12. https://specify.io/concepts/microservices
  13. https://specify.io/concepts/microservices
  14. https://specify.io/concepts/microservices
  15. https://specify.io/concepts/microservices
  16. https://specify.io/concepts/microservices
  17. WebScale ‘No ACID BASE Speed, reads Redundancy Read-optimized format Not all use cases require ACID (or can afford it) Read only (product catalog for web shops) Inserts only and no (inter-record) constraints Big Data collected and “dumped” in Data Lake (Hadoop) for subsequent processing High performance demands Not all data needs structured formats or structured querying and JOINs Entire documents are stored and retrieved based on a single key Sometimes – scalable availability and developer productivity is more important than Consistency – and ACID is sacrificed CAP-theorem states: Consistency [across nodes], Availability and Partition tolerance can not all three be satisfied
  18. https://specify.io/concepts/microservices
  19. https://specify.io/concepts/microservices
  20. Reconstruct DML Events Reconstruct History Reverse Engineering of Event Source DEMO Flashback Query & Flasback Versions Query Publish Events from Database using HTTP (or Stored Java) QCRN, Trigger + Job, Log Mining, Scheduled Flashback Job,
  21. All data stores are distributed Or at least distributedly available They can be local or on cloud (latency is important) Data in generic data store is still owned by only one microservice – no one can touch it Only in DWH and BigData do we deliberately take copies of data and disown them
  22. Data used to be like T-Ford One model, one color And then:
  23. Data comes in many shades (at least 50) – variations along many dimensions
  24. technologies