Please enable JavaScript.
Coggle requires JavaScript to display documents.
SYSTEM DESIGN STEP BY STEP, 2.1. Identify Entities, 2.2. Mapping Entities…
SYSTEM DESIGN STEP BY STEP
Ask Questions to capture
a. Functional Requirements
b. Non-Functional Requirements
Scalability (million of users)
Performance (less than 500ms Response Time 99p - 99%)
Response Time
Processing Time
Waiting Time
Percentile
Tail Latency
Throughput
amount of work performed by our system time (tasks/second)
amount of data processed by our system per unit of time (Mbytes/second))
Fault Tolerance/High Availability (99.9% - 3 nine)
Brews Theory - CAP (AP >< CP)
C: Consistency
A: Availability
P: Partition Network
Durability
c. System Constrains
Define the System's API
API Categories
Public APIs
Private/Internal APIs
Partner APIs
API types
RPC
GraphQL
Bi-direction API (Websocket)
Use Cases
User flow
Sequence Diagram - UML
State Diagram
Create a Software Architecture Diagram to fulfill the Functional Requirements
Refine the Software Architecture Diagram to address the Non-Functional Requirements
Types of Architecture
Monolithic
Multi-Tier Architecture
Presentation Tier
Application Tier
Logic Tier
Business Tier
Data Tier
Object Store
Database
Relational Database
ACID
A = Atomicity
C = Consistency
I = Isolation
D = Durability
SQL = Structure Query Language
Structured = Schema
Non Relational Database
Key/Value Store
Document Store
Graph Database
Techniques to improve
Indexing
Hash value
B-Tree = binary tree algorithm
Replication
Partitioning/Sharding
Horizonal = Partitioning by Columns
Vertical = Partitioning by Rows
Microservices
SRP: Single Responsibility Principle
SDPS: Separate Database Per Service
Avoid Big Ball of Muz
Event-Driven
Event Sourcing Pattern; Producer -> Consumption
CQRS
C = Command
Q = Query
R = Responsibility
S = Segregation
Message Broker
Kafka
Rabbit MQ
SLA, SLO, SLI
SLA: Service Level Agreement
SLIs: Service Level Indicators
SLOs: Service Level Objectives
Building Blocks
DNS = Domain Name Service
Load Balancing
GSLB = Global Server Load Balancing
Message Broker
API Gateway (Authentication, Authorization, Routing Request, Caching)
CDN = Content Delivery Network (Push/Pull)
Big Data
Specification
Volumn
Variety
Velocity
Processing Strategies
Batch Processing
Real-Time Processing
Lambda Architecture
Batch Layer
Speed Layer
Serving Layer
Service
= Design Phase in SDLC
2.1. Identify Entities
2.2. Mapping Entities to URIs
REST API
2.3. Defining Resources Representation
2.4. Assigning HTTP Methods to Operations on Resources