Search
Duplicate

Backend Architecture

Category
Dev
Parent item
Sub-category
Architecture
Sub-item
Tags
Backend
Domain Name Server
enables WWW
changes domain name to ip address
Load Balancer
Horizontal scaling is always better than vertical scaling
prevent service interruption
even you can scale server vertically, there is an limit
enables horizontal scaling
by distributing requests to the duplicated server
Web Application Server
executes business logic and sends responds through HTML
Should choose proper server language (Node.js, Ruby, PHP, Scala, Java, C#, .NET, ...) and its web MVC framework (Express for Node.js, Ruby on Rails, Play for Scala, Laravel for PHP)
Database Server
struct, insert, find, modify, delete, and compute data
Each backend service could have distinct different database
SQL vs NoSQL
Cache Service
provide key-value data that could be found in O(1)
Instead of re-calculation, application retrieves result from cache
Redis / Memcache
Job Queue & Server
application should do background task asynchronously
For example, google crawling and indexing data from internet
Job Queue architecture has two components
Queue consists of Jobs that is FIFO (First-in-first-out)
Job server that runs job in queue