Copyright	©	2018, Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Data	Management	in	a	
Microservices	World
Gerald	Venzl	
Senior	Principal	Product	Manager
Oracle	Development
@GeraldVenzl
geraldonit.com
Separating	the	reality	from	madness
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Safe	Harbor	Statement
The	following	is	intended	to	outline	our	general	product	direction.	It	is	intended	for	
information	purposes	only,	and	may	not	be	incorporated	into	any	contract.	It	is	not	a	
commitment	to	deliver	any	material,	code,	or	functionality,	and	should	not	be	relied	upon	
in	making	purchasing	decisions.	The	development,	release,	timing, and	pricing	of	any	
features	or	functionality	described	for	Oracle’s	products	may	change	and	remains	at	the	
sole	discretion	of	Oracle	Corporation.
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		| 3
Gerald	Venzl
• Oracle	Database	Product	Manager
• Previous:	
– Java	Developer
– Performance	Engineer
– Enterprise	Architect
• Twitter:	@GeraldVenzl
• Blog:	https://geraldonit.com
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Microservices
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Martin	Fowler	&	James	Lewis,	March.	2014		
https://martinfowler.com/articles/microservices.html
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Martin	Fowler	&	James	Lewis,	March.	2014		
https://martinfowler.com/articles/microservices.html
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Martin	Fowler	&	James	Lewis,	March.	2014		
https://martinfowler.com/articles/microservices.html
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Ryan	Marsh
@ryan_marsh
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Ryan	Marsh
@ryan_marsh
“Death	Star	Architecture”
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Rule	#1:	You	are	not	Netflix,
Google,	Facebook!
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Polyglot	persistence
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
“Polyglot	persistence	will	occur	over	the	enterprise	as	different	applications	use	different	data	
storage	technologies.	It	will	also	occur	within	a	single	application	as	different	parts	of	an	
application’s	data	store	have	different	access	characteristics.”
Martin	Fowler	&	Pramod	Sadalage,	Feb.	2012		
http://martinfowler.com/articles/nosql-intro-original.pdf
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Source:	The	future	is:	NoSQL Databases Polyglot	Persistence
http://martinfowler.com/articles/nosql-intro-original.pdf
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Rule	#2:	Just	because	you	can
doesn’t	mean	you	should!
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Different	applications/	µServices have	different	needs
User	Sessions
Financial	
Transactions
Shopping	 Cart
Recommend.	
Engine
Product	
Catalog
Reporting Analytics Activity	Logs
Processing
Heavy	Writes √
Heavy	Reads √ √ √ √
Fast	Read/Write √
Data	Consistency √
Data	Durability	 √
Analytic √ √
Graph √
Spatial
Geo	Distribution √ √ √
Data
Relational √ √ √
Key/Value √ √ √
Document/JSON √ √ √
Graph √ √
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Two	Approaches	to	Polyglot	Persistence
Single-model Multi-model
Relational	
Database
Key	/	Value
Store
Graph	Database
Document	store	
(JSON/XML)
Free	Text	and	Docs
(PDF,	DOC,…)
Relational	data
Key	/	Value	data
Documents	
(JSON/XML)
Graphs
Free	Text	and	Docs
(PDF,	DOC,…)
Spatial	Database Spatial	data
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Evolution	of	data	management
1970s
Cobol
ISAM
Relational
SQL
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
C			o			m			p			l			e			x			it			y
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Evolution	of	data	management
1970s
Cobol
ISAM
Relational
SQL
1980s
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
C			o			m			p			l			e			x			it			y
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Evolution	of	data	management
1970s
Cobol
ISAM
Relational
SQL
1980s
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
1990s
C			o			m			p			l			e			x			it			y
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Evolution	of	data	management
1970s
Cobol
ISAM
Relational
SQL
1980s
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
C			o			m			p			l			e			x			it			y
1990s
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Evolution	of	data	management
1970s
Cobol
ISAM
Relational
SQL
1980s
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
2000s
C			o			m			p			l			e			x			it			y
1990s
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Evolution	of	data	management
1970s
Cobol
ISAM
Relational
SQL
1980s
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
2000s
C			o			m			p			l			e			x			it			y
1990s
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Evolution	of	data	management
1970s
Cobol
ISAM
Relational
SQL
1980s
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
2000s 2010s
C			o			m			p			l			e			x			it			y
1990s
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Multi-model	prevails	over	time
C			o			m			p			l			e			x			it			y
1970s
Relational
SQL
1980s
Object	DBs
Multi-Model
SQL
XML
XPath
Multi-Model
SQL
JSON
Multi-Model
SQL
1990s 2000s 2010s 20??
Cobol
ISAM
Multi-Model
SQL
Next	“big”	
thing
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Multi-model	capabilities
• The	relational	model	is	a	logical	model
• Databases	store	data	not	in	rows	and	columns,	but	in	blocks
– Blocks	are	aligned	to	block	storage,	i.e.	disks	and	the	way	they	store	data
– Data	is	logically	represented	as	rows	and	columns
• Multi-model	databases	contain	logical	models	to	other	data	formats
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Polyglot	Persistence	Market	Trends
• Single-model	architectures	are	most	pervasive	for	‘edge’	applications
– New	business	&	workload	requirements
• Business	applications	naturally	converge	to	multi-model	architectures
– Today’s	‘edge’	applications	are	tomorrow’s	mainstream	business	applications
– Efficiencies	of	multi-model	architecture	override	advantages	of	special-purpose	
systems	over	time
• There	will	always	be	single-model	polyglot	architectures
– Because	there	are	always	new	‘edge’	applications
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
µServices	and	Polyglot	Persistence
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
Polyglot	µServicesPolyglot	µServices
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Considerations	for	Polyglot	Persistence
Multi-model	Polyglot:
• Benefits	of	consolidation	and	standardization
• Standardized	administration
• Consistent	data	security	policies
• Simple	integration	across	multiple	data	formats	
• Transactions	and	data	consistency
Single-model	Polyglot:
• Benefits	of	specialization
• Specialized	APIs
• Specialized	data	formats
• Specialized	access	methods	and	indexes
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
The	hidden	pains
or	stuff	that	we	like	to	ignore
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
The	Hidden	Pain	of	Data	Management	and	µServices
Cust.
Cust.Cust.Cust.
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Source:	The	future	is:	NoSQL Databases Polyglot	Persistence
http://martinfowler.com/articles/nosql-intro-original.pdf
The	data	lake
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Source:	The	future	is:	NoSQL Databases Polyglot	Persistence
http://martinfowler.com/articles/nosql-intro-original.pdf
The	data	lake
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Source:	The	future	is:	NoSQL Databases Polyglot	Persistence
http://martinfowler.com/articles/nosql-intro-original.pdf
The	data	swamp
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
The	data	swamp
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Source:	The	future	is:	NoSQL Databases Polyglot	Persistence
http://martinfowler.com/articles/nosql-intro-original.pdf
Event	Sourcing
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Source:	The	future	is:	NoSQL Databases Polyglot	Persistence
http://martinfowler.com/articles/nosql-intro-original.pdf
CQRS	+	Event	Sourcing
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
The	data	reasoning	problem
• Much	harder	to	understand	the	structure	from	other	domains
– Now	you	have	to	know	how	other	applications	structure	their	data
• Schema-on-read	brings	an	inherent	data	cleansing	problem
– As	no	constraints	are	enforced	at	write	no	guarantees	can	be	assumed
• The	more	data	you	have,	the	more	complex	it	gets
– Need	to	hire	Data	Scientists	where	SQL	used	to	be	sufficient
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Rule	#3:	Just	because	it	sounds	cool
doesn’t	mean	it	fits	your	use	case!
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Secure	Event	Sourcing	for	critical	data
ISO	SQL:2011	System-versioned	temporal	tables
(Flashback	Data	Archive)
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Secure,	scalable	and	fully	integrated
UPDATE
Risk	calculations
FDA
Background	
process
Risk	calculation	history
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Secure,	scalable	and	fully	integrated
UPDATE
Risk	calculations
Background
FDA
Background	
process
Risk	calculation	history
No	impact
to	DML
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Analysis	over	entire	history	of	changes	via	SQL
Risk	calculations
Risk	calculation	history
Flashback	Query	(SELECT	AS	OF)
“Retrieve	risk	calculations	as	of	90	days	ago”
SELECT * FROM risk_calculations
AS OF (SYSDATE – 90);
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Analysis	over	entire	history	of	changes	via	SQL
Risk	calculations
Risk	calculation	history
Flashback	Query	(SELECT	AS	OF)
“Retrieve	risk	calculations	as	of	90	days	ago”
SELECT * FROM risk_calculations
AS OF (SYSDATE – 90);
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Analysis	over	entire	history	of	changes	via	SQL
Risk	calculations
Risk	calculation	history
Flashback	Version	Query
(SELECT	VERSIONS	BETWEEN	start AND	end)
“Retrieve	all	risk	calculations	changes	from	two	
weeks	ago”
SELECT * FROM risk_calculations
VERSIONS BETWEEN
SYSDATE-14 AND SYSDATE-7;
Flashback	Query	(SELECT	AS	OF)
“Retrieve	risk	calculations	as	of	90	days	ago”
SELECT * FROM risk_calculations
AS OF (SYSDATE – 90);
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Analysis	over	entire	history	of	changes	via	SQL
Risk	calculations
Risk	calculation	history
Flashback	Version	Query
(SELECT	VERSIONS	BETWEEN	start AND	end)
“Retrieve	all	risk	calculations	changes	from	two	
weeks	ago”
SELECT * FROM risk_calculations
VERSIONS BETWEEN
SYSDATE-14 AND SYSDATE-7;
Flashback	Query	(SELECT	AS	OF)
“Retrieve	risk	calculations	as	of	90	days	ago”
SELECT * FROM risk_calculations
AS OF (SYSDATE – 90);
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Analysis	over	entire	history	of	changes	via	SQL
Risk	calculations
Risk	calculation	history
Flashback	Version	Query
“Pull	entire	change	history	for	factor	=	’Major’	”
SELECT * FROM risk_calculations
VERSIONS BETWEEN SYSDATE AND MAXVALUE
WHERE factor = 'Major’;
UNDO
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Analysis	over	entire	history	of	changes	via	SQL
Risk	calculations
Risk	calculation	history
Flashback	Version	Query
“Pull	entire	change	history	for	factor	=	’Major’	”
SELECT * FROM risk_calculations
VERSIONS BETWEEN SYSDATE AND MAXVALUE
WHERE factor = 'Major’;
UNDO
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Change	tracking	for	all	DMLs
Analysis	over	entire	history	of	changes	via	SQL
Risk	calculations
Risk	calculation	history
• Fully	secure
– Encryption	at	transport	and	rest
– Fine	grain	access	control
– Fully	automatic,	never	loosing	a	single	change.
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerization
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
µServices	and	Containerization
Product	
catalog
Financial	
data
Recommend	
engine
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Traditional	deployment	of	data	store
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Dockerized data	store	deployment
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
µServices	and	Containerization
Product	
catalog
Financial	
data
Recommend	
engine
High	Availability
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Product	
catalog
Financial	
data
Recommend	
engine
Real	Application	Clusters
JSON
High	Availability
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Deployment	transparency
Product
catalog
Recommend
engine
Cluster	EMEA
Financial
data
Recommend
engine
• PDB	Hot	Clone	
– Faster	container	instantiation
• PDB	Relocate
– Relocate	with	no	downtime
Cluster	US
Product	
catalog
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Deployment	transparency
Product
catalog
Recommend
engine
Cluster	EMEA
Financial
data
Recommend
engine
• PDB	Hot	Clone	
– Faster	container	instantiation
• PDB	Relocate
– Relocate	with	no	downtime
Cluster	US
Product	
catalog
Product	
catalog
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Deployment	transparency
Product
catalog
Recommend
engine
Cluster	EMEA
Financial
data
Recommend
engine
• PDB	Hot	Clone	
– Faster	container	instantiation
• PDB	Relocate
– Relocate	with	no	downtime
Cluster	US
Product	
catalog
Product	
catalog
Product
catalog
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Deployment	transparency
Product
catalog
Recommend
engine
Cluster	EMEA
Financial
data
Recommend
engine
• PDB	Hot	Clone	
– Faster	container	instantiation
• PDB	Relocate
– Relocate	with	no	downtime
Cluster	US
Product	
catalog
Product	
catalog
Product
catalog
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Deployment	transparency
Financial
data
Product
catalog
Cluster	B
Product
catalog
Recommend
engine
• PDB	Hot	Clone	
– Faster	container	instantiation
• PDB	Relocate
– Relocate	with	no	downtime
Cluster	A
Financial	
data
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Deployment	transparency
Product
catalog
Cluster	B
Product
catalog
Recommend
engine
Financial
data
• PDB	Hot	Clone	
– Faster	container	instantiation
• PDB	Relocate
– Relocate	with	no	downtime
Cluster	A
Financial	
data
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Containerized	databases
Deployment	transparency
Product
catalog
Cluster	B
Product
catalog
Recommend
engine
Financial
data
• PDB	Hot	Clone	
– Faster	container	instantiation
• PDB	Relocate
– Relocate	with	no	downtime
Cluster	A
Financial	
data
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Sharding
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Sharding Benefits
Linear	Scalability
Add	shards	online	to	scale	
database	size	and	throughput.	
Online	split	and	rebalance.
High	Availability
Shared-nothing	hardware	
architecture.	Fault	of	one	shard	
has	no	impact	on	others.
Geographic	Distribution
User	defined	data	placement	for	
performance,	availability,	DR	or	to	
meet	regulatory	requirements.
…
…
…
…
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Database	Sharding
Oracle	Database	for	web-scale	applications
One	giant	database	partitioned	into	many	small	
databases	(shards)
Customers	Americas
Customers
Customers	Europe
Customers	Asia
• RAC	and	Data	Guard	meet	needs	of	over	99%	of	
applications	while	preserving	application	transparency
• Some	Global-Scale	OLTP	applications	prefer	to	shard
massive	databases	into	a	farm	of	smaller	databases
– Avoid	scalability	or	availability	edge	cases	of	a	single	large
database
– Willing	to	customize	data	model	and	applications	to	enable	
transactions	to	be	automatically	routed	to	the	right	shard
• Native	SQL	for	shardingtables	across	up	to	1000	Shards
- Routing	of	SQL	based	on	shard	key,	and	cross	shard	queries
- Online	addition	and	reorganization	of	shards
- Linear	scalability	of	data,	workload,	users	with	isolation
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Sharding Automated	Distribution
Enhanced	SQL	syntax	for	Sharding
…
CREATE SHARDED TABLE Customers
( CustId VARCHAR2(60) NOT NULL,
FirstName VARCHAR2(60),
LastName VARCHAR2(60),
…
PRIMARY KEY(CustId),
)
PARTITION BY CONSISTENT HASH (CustId)
…
• SQL	syntax	for	creating	sharded tables
• Not	proprietary	APIs	as	with	NoSQL
• Creation	of	a	sharded	table	automatically	
partitions	data	across	shards
• Transparent	resharding as	data	grows
• Choice	of	sharding methods:
• System	managed	- consistent	hash
• User	defined	- range,	list
• Composite	- range-hash,	list-hash
• Common	reference	data	(e.g.	Price	List)	is	
automatically	duplicated	on	all	shards
• Supports	shard	placement	in	specific		
geographies	to	satisfy	government	data	privacy
…
…
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
REST-enable	your	data	out	of	the	box
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Customers
API
REST-enable	your	data	out	of	the	box
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
Customers
API
REST-enable	your	data	out	of	the	box
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Product	
catalog
API
Financial	
data
API
Recommend	
engine
API
JSON
API
Customers
REST-enable	your	data	out	of	the	box
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
JSON
Oracle	Database
(Document	Store)
Oracle	
NoSQL	Database
Oracle
REST	Data	Services
REST
JSON
Oracle	Database
(Relational	&	JSON)
REST-enable	your	data	out	of	the	box
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Async
?
• Was	the	payment	processed	or	
not?
• Was	the	data	persisted	or	not?
• If	not,	how	do	we	replay	the	
payment?
• If	yes,	how	do	we	guarantee	that	
we	don’t	bill	the	customer	twice?
• …
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Sync
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Communication
Financial	
data
API
Shopping	
cart
API
JSON
Sync
• Possible	solution,	 but…
• Services	will	be	tightly	coupled
• Outage	of	one	system	will	impact	
the	other	system
• Prevents	service	independent	
scaling
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Advanced	Queueing
Financial	
data
API
Shopping	
cart
API
JSON
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Advanced	Queueing
Financial	
data
API
Shopping	
cart
API
JSON
AQ
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Advanced	Queueing
Financial	
data
API
Shopping	
cart
API
JSON
HTTP	200	OK
AQ
Async
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Advanced	Queueing
Financial	
data
API
Shopping	
cart
API
JSON
Async
AQ
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Oracle	Advanced	Queueing
Financial	
data
API
Shopping	
cart
API
JSON
Async
AQ
Reliable	communication	without	tight	coupling
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Financial	
data
API
Oracle	Advanced	Queueing
Shopping	
cart
API
JSON
Async
AQ
Reliable	communication	without	tight	coupling	
• Allows	reliable	communication	
without	coupling
• Further	increases	scalability
– REST	payloads	are	never	lost	and	put	
into	one	or	multiple	queues	to	work	off	
from
• Provides	transparency
– Works	for	any	data
– Works	for	PDBs	and	non-CDBs
AQ
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Schema	evolution
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Schema	evolution
Product	
catalog	v1
API
JSON
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Schema	evolution
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Schema	evolution
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
JSON
v2
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Schema	evolution
API
Financial	
data	v1
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
JSON
v2
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Schema	evolution
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
JSON
v2
API
Financial	
data	v1
API
Financial	
data	v2
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Schema	evolution
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
JSON
v2
?
API
Financial	
data	v1
API
Financial	
data	v2
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Edition	based	redefinition
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
JSON
v2
API
Financial	
data	v1
API
Financial	
data	v2
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Edition	based	redefinition
API
Financial	
data	v1
API
Financial	
data	v2
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
JSON
v2
v1
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Edition	based	redefinition
Product	
catalog	v1
API
JSON
Product	
catalog	v2
API
JSON
v2
v1 v2
API
Financial	
data	v1
API
Financial	
data	v2
Copyright	©	2019,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Edition	based	redefinition
JSON
Product	
catalog	v2
API
JSON
v2
v2
API
Financial	
data	v2
Copyright	©	2018,	Oracle	and/or	its	affiliates.	All	rights	reserved.		|
Q	&	A

Data Management in a Microservices World