Boosting Database Performance
for a
Micro Frontends Architecture
@anfibiacreativa
© CampaignCreators | Unsplash.com
@anfibiacreativa
CLOUD NATIVE
Simplify
Architecture
Decouple
Systems
Reduce TCO
Minimize
Dependencies
@anfibiacreativa
Architecture
© Nick Nice | Unsplash.com
PEOPLE
TECHNOLOGY
PROCESSES
Team Config
Skills
Seniority
Models
Patterns
Learning Curve
Maturity
Methodology
Compliance
Procurement
Documentation
Distribution
Component Library
Computation Service
API Service
Infra Service
Infra Service
Computation Service
Component Library
Storage Service
Component Library
Computation Service
API Service
Infra Service
Infra Service
Computation Service
Component Library
Storage Service
Frontend
@anfibiacreativa
Monolith Layer
Infrastructure
Data Storage
Business Logic
Data Access
Infrastructure
Data Storage
Business Logic
Data Access
Infrastructure
Data Storage
Business Logic
Data Access
@anfibiacreativa
Business Logic
Data Access/API Layer
Data Storage/Persistence
Infrastructure
?
?
Infrastructure
Data Storage
Business Logic
Frontend
API Layer
©Kelly Sikkema | unsplash.com
© JESHOOTS | Unsplash.com
HIGH TECHNICAL DEBT
HIGH TCO
UNSATISFIED TEAM
Particularly
when skills of most of the team are opposed to decision and time frame is short
Lots of hidden costs associated with undifferentiated efforts: ramping up the team, fixing bugs, maintenance
Team dissatisfaction, high attrition, leadership burn-out
© Christopher Windus | Unsplash.com
©Amelie Mourichon | Unsplash.com
Mobile traffic share Nov. 2021
53.98%
© Killian Cartignies | Unsplash.com
100%
20%
40%
60%
80%
2015
2020
Total global data estimated in 2025
175 Zb
© Chris Liverani | Unsplash.com
Frontend
@anfibiacreativa
Client-side
Server-side
@anfibiacreativa
Frontend
Frontend
Business Logic
Data Access
Data Storage
Infrastructure
Business Logic
Data Access
Data Storage
Infrastructure
Business Logic
Data Access
Data Storage
Infrastructure
1
2
3
@anfibiacreativa
Graphics: https://www.flaticon.com/authors/smashicons at www.flaticon.com
Business Capability
Independent Team
Fail Silently
Own it's data?
© Nubelson Fernandez | Unsplash.com
Going Serverless
© Phil Santillan | Unsplash.com
Frontend
@anfibiacreativa
Micro Apps leveraging Serverless Functions and Triggers
@anfibiacreativa
Frontend
Frontend
BL
Data Access
Data Storage
Infrastructure
BL
Data Access
Data Storage
Infrastructure
Data Access
Data Storage
Infrastructure
BL
BL
BL
BL
BL
BL
Share or
Duplicate Data?
©Adam Nowakowski | Unsplash.com
Patterns and Models
Backups and recovery strategy
Database Type
© Hannes Richter | Unsplash.com
SQL DB's
NoSQL DB's
Queried using the Structured Query Language (SQL)
Queried with other languages, like MQL (Mongo Query Language)
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
MySQL, PostgreSQL, SQL Server
MongoDB, Firebase, Firestore
Cloud BigTable
SpatiaLite, PostGIS
Redis, Memcached
Neo4js, Virtuoso
Elasticshearch, Solr, Algolia
MongoDB, Influx, Prometheus
Many of the above and more!
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Content Management, Banking, CRM, Resource Planning
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Content Management, Banking, CRM, Resource Planning
Content Management, Fintech, Customization, Personalization
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Content Management, Fintech, Customization, Personalization
Session Management, Product recommendations, Caching
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Session Management, Product recommendations, Caching
Fraud Detection, Recommendation Engines, Social Networks, Network Mapping
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Fraud Detection, Recommendation Engines, Social Networks, Network Mapping
IoT use-cases (collecting data from devices), trends and forecasting, monitorization
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
IoT use-cases (collecting data from devices), trends and forecasting, monitorization
Full-text content search
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Full-text content search
Logging, geographic information, reporting systems
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Logging, geographic information, reporting systems
Geomarketing, Supply chain optimization, Environmental Management
Relational
Document Stores
Key-Value
Graph
Spatial
Search Engines
Wide Column
Multivalue
Time-series
Geomarketing, Supply chain optimization, Environmental Management
Several of the above.
Does my microservice/micro-frontend
need a specific database?
Does your solution handle a specific type of data that no other service is dealing with?
Probably, yes.
©Towfiqu Barbhuia | Unsplash.com
Does the cloud provider offer centralized user and network access control?
Is there a need to aggregate data from the many different databases, at some point?
Is there the possibility to split databases as logical units?
©Towfiqu Barbhuia | Unsplash.com
Frontend
@anfibiacreativa
MicroApps with Shared Data Layer
@anfibiacreativa
Frontend
Frontend
Business Logic
Infrastructure
Business Logic
Data Access
Data Storage
Infrastructure
Data Access
Data Storage
Infrastructure
BL
BL
BL
Performance
©Nicolas Hoizey | Unsplash.com
Schema and Design Pattern
©Eleventh Wave | Unsplash.com
Data queried together
is stored together
Schema is not mandatory but can be enforced if needed, totally OR partially!
Indexing
©Maksym Kaharlytskyi | Unsplash.com
Workload Isolation
©Eugene Lim | Unsplash.com
ANALYTICS
OPERATIONAL
READ-ONLY
ANALYTICS
READ-ONLY
Single View Game Stats
GAME
OPERATIONAL
Leaderboard
Global Distribution
©Timo Wielink | Unsplash.com
Edge of the Network
©Marteen Van der Heuvel | Unsplash.com
EDGE DB
CLOUD DB
Conflict resolution
Optimized footprint
Synchronization
@anfibiacreativa
Simplify Architecture
Decouple Systems
Reduce TCO
Minimize Dependencies
Frontend
Data Access
Data Storage
Infrastructure
Breakdown Silos
Enable Independent Teams
Business Logic
PEOPLE
TECHNOLOGY
PROCESSES
Specialized team working on solving a concrete problem
Tech stack is chosen according to the team skills and the specific use-case
Processes are simplified to enable each team independently, based off of technology and requirements
Thank you!
Natalia Venditto
Images: Unsplash.com Icons and graphics: flaticons.com
@anfibiacreativa
https://www.flaticon.com/authors/freepik
https://www.flaticon.com/authors/vitaly-gorbachev
Boosting Database Performance for a Microapplications Architecture
By Natalia Venditto
Boosting Database Performance for a Microapplications Architecture
- 326