Architecture
The browser can also make changes to data using the same flow but with different HTTP methods like POST and PATCH.
The Stack
Multitenant, monolithic, 3-tier application with a MySQL database, Spring Boot HTTP API and React Single Page Application.
Tier/Component
Type
Language
Implementation
DB (Database)
Relational
SQL
MySQL (pronounced "my sequel")
API (Application Programming Interface)
JSON over HTTP
Java
Spring Boot
UI (User Interface)
SPA (Single Page Application)
Javascript
React
Tier Responsibilities
Tier/Component
Where it runs
Infrastructure
Storage & Retrieval
Security
Navigation
DB
Private server (cloud)
yes
API
Public server (internet facing) (cloud)
yes
yes
UI
Internet browsers (desktop and mobile devices)
yes
yes
yes
You can see the separation in responsbility here but I also want to highlighting the sharing of responsbility with storing and retrieving data.
Security
Monolithic
Multitenant
Application Tools
Database
An older, common relational database that I have the most experience with.
API
An easy and opionated way to create Java applications.
To authenticate users.
Helpful abstraction for doing CRUD.
Creating typesafe and composable database queries even directly from http requests.
UI
Simple, powerful and popular.
For an opionated, zero-configuration build process.
URL management.
Development Tools
Popular and works well.
For simplicity and synced changes across the application.
An abstraction over git to make it easier to do common things.
Editors
Fast and popular editor.
The best Mac app to manage MySQL databases.
Deployment
for automated database migrations.
Last updated