SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
www.gitbar.it
Senior Software Engineer @ Nearform

Gitbar.it Podcast
FACCIO COSE>
VEDO GENTE>
Mauro
Murru

Brainrepo
Perché tanti sideprojects
muoiono?
+ ci rendiamo conto che sono inutili

+ ci costringono a fare ció che non abbiamo voglia
di fare ALIAS PIGRIZIA
www.gitbar.it
Crud
Boilerplate
+

www.gitbar.it
www.gitbar.it
Gli essenziali
Database
Crud
Api
Realtim
e
Biz logic
Auth
+ Authz
File
Storage
I miei fallimenti
Approccio alla Laravel / Rails
Hasur
Firebase / Aws amplif
Nextjs as fullstack framewor
Mashup di servizi
www.gitbar.it
Il tentativo
www.gitbar.it
Il tentativo
Usare supabase per il backend (magari self-hostandolo
Fare il frontend + backend for frontend (biz logic) con nextjs 


Obiettivi: Concentrarmi sulla e sulla
UI BIZ LOGIC
www
.gitbar
.it
Cosa é supabase
The Open Source

Firebase Alternative

BaaS Platform on top of AWS 

Toolkit self-hostabile
Come funziona...
www.gitbar.it
www.gitbar.it
Il castello errante 

di Howl
 Calcifer

Il castello errante di Howl (Hauru no ugoku shiro) (2004)
PostgreSQL
Kong
URLMAPPING
Go True
https://github.com/
supabase/gotrue
Storage
https://github.com/
supabase/storage-api
www.gitbar.it
Postgrest
https://postgrest.org/
en/stable/
Realtime
https://github.com/
supabase/realtime
Pg meta
https://github.com/
supabase/postgres-
meta
Studio UI
SDK
Postgresql

Single Source of Trut
contiene lo schema + dati
supporta tipi custom (estensioni
contiene le regole di autorizzazione (rls
contiene funzioni (Biz logic)
supporta la full text searc
esportabile tutto con pg-dump / restor
supporta le subscriptions
www.gitbar.it
Database
Calcifer Il castello errante di Howl (2004)
Calcifer Il castello errante di Howl (2004)
UIperilCRUD
www.gitbar.it
Database
UI per gestire il database
www.gitbar.it
Database
UI per gestire il database
www.gitbar.it
Database
Accedere ai dati
SDKper JS, Dart, C#, Ruby, Swif
Via SQLquery
Via UI da supabase studio
www.gitbar.it
CrudApi
Kamaji - La città incantata (2001)
Piccolissimoservizioontopdi
PostgreSQ
SupportoalRLS(vediamopoi
Supportodeifiltr
Docgenerataautomaticamente
www.gitbar.it
CrudApi
Open API support + docs
www.gitbar.it
Crud Api
www.gitbar.it
Auth
+ Authz
Aut
Authz
anon key service role key user key
Porco rosso (1995)
www.gitbar.it
Auth
+
Authz
Auth
Autenticazion
Registrazione utent
User management
Email & password.

Magic links (one-click logins).

Social providers.

Phone logins.
data
data
www.gitbar.it
Auth + Authz
Classic app flow
Client
Api
PostgreSQL
jwt token
accepted
data
www.gitbar.it
Auth + Authz
RLS flow
Client PostgreSQL
jwt token
accepted
www.gitbar.it
Auth
+
Authz
Authz
Basata su rls
www.gitbar.it
Realtim
e
Realtime
Servizio realtime in elixir che ascolta
le modifiche del database e le invia in 

broadcast su websocket
Kiki - Kiki consegne a domicilio (1989)
Libreria opensourc
Supporta RL
SD
basata su posgresql logical
replication (pub.sub)
www.gitbar.it
R
ealtim
e
Realtime
Api per l’upload e il management dei fil
Driver compatible con S
Ogni file corrisponde con un record nel database

nel namespace storag
RLS per bucket / folder / fil
UI per upload e gestione file
www.gitbar.it
File
S
to
ra
g
e
File storage
Gran Dama — La Gran Dama (大ババ O-Baba)

Nausicaä della Valle del vento (1984)
www.gitbar.it
Gran Dama - Nausicaä della Valle del vento(1984)
File
Storage
File storage
Interfacciare il CRUD i dati e la logica di Busines
Alpha (funzionalitá nascosta nel pannello 

di admin nella versione self installed
Configurabile da ui
www.gitbar.it
Bizlogic
Chihiro e Lin

La città incantata (2001)
Business Logic
www.gitbar.it
Gran Dama - Nausicaä della Valle del vento(1984)
Biz logic
Business Logic
functions triggers function

hooks
www.gitbar.it
Biz logic
Functions
Classiche stored procedur
Invocabili direttamente via SQL / SD
PL/pgSQL o JS con estensioni (plv8
Chiamate verso webhook (estensioni)*
www.gitbar.it
Biz logic
Triggers
Funzione nativa di postgresq
Invoca una funzione prima/dopo un evento sql

(select, update, delete
Puo scattare una volta per riga o per event
Creati via UI o SQL
www.gitbar.it
Biz logic
Function hooks
Invoca http Webhook / AWS lambda / 

Google cloudru
Async 300 req/s - Sync 3.5 req/10s
Si basano su un worker e una coda
Usano PG_NE
Non visibili nella versione on premis
http method / params / headers configurabili
www.gitbar.it
Chihiro e Lin

La città incantata (2001)
Cosa manca / Limiti
Graphq
Kubernete
“One command install”
Il DB non é il
componente piú
semplice da scalare


Progetto giovane,
tanto da fare
www.gitbar.it
Chihiro e Lin

La città incantata (2001)
Take away
PostgreSQL é molto di piú di un posto dove mettere record

Contenu connexe

Similaire à Supabase - Codemotion 2022 talk

Abusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side StorageAbusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side Storage
ameft
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
DotNetMarche
 
Asp.net gestione della_memoria
Asp.net gestione della_memoriaAsp.net gestione della_memoria
Asp.net gestione della_memoria
Crismer La Pignola
 

Similaire à Supabase - Codemotion 2022 talk (20)

Glusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatileGlusterfs: un filesystem altamente versatile
Glusterfs: un filesystem altamente versatile
 
Html5
Html5Html5
Html5
 
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
Matteo Baccan - Valerio Tognozzi - Novara LinuxDay 2015
 
Matteo baccan raspberry pi - linox 2015 - corso parte 1
Matteo baccan   raspberry pi - linox 2015 - corso parte 1Matteo baccan   raspberry pi - linox 2015 - corso parte 1
Matteo baccan raspberry pi - linox 2015 - corso parte 1
 
Atempo hyperstream server
Atempo hyperstream serverAtempo hyperstream server
Atempo hyperstream server
 
Abusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side StorageAbusing HTML 5 Client-side Storage
Abusing HTML 5 Client-side Storage
 
Introduzione a google_app_engine_datastore
Introduzione a google_app_engine_datastoreIntroduzione a google_app_engine_datastore
Introduzione a google_app_engine_datastore
 
Deployment ripetibili e automatizzati con Salt
Deployment ripetibili e automatizzati con SaltDeployment ripetibili e automatizzati con Salt
Deployment ripetibili e automatizzati con Salt
 
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 2 - Corso Linux, Android e Internet of Things
 
Presentazione java7
Presentazione java7Presentazione java7
Presentazione java7
 
node.js e Postgresql
node.js e Postgresqlnode.js e Postgresql
node.js e Postgresql
 
MySQL: il database open source che ha sfidato i giganti
MySQL: il database open source che ha sfidato i gigantiMySQL: il database open source che ha sfidato i giganti
MySQL: il database open source che ha sfidato i giganti
 
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
PostgreSQL - Hadoop: Why not? - PGDay.IT 2016
 
Ha solutions su power i
Ha solutions su power iHa solutions su power i
Ha solutions su power i
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
Chi ha paura di Github? Conosciamolo meglio!
Chi ha paura di Github? Conosciamolo meglio!Chi ha paura di Github? Conosciamolo meglio!
Chi ha paura di Github? Conosciamolo meglio!
 
Introduzione a RaspBerry PI
Introduzione a RaspBerry PIIntroduzione a RaspBerry PI
Introduzione a RaspBerry PI
 
Sviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle MonorailSviluppo Web Agile con Castle Monorail
Sviluppo Web Agile con Castle Monorail
 
HTML5
HTML5HTML5
HTML5
 
Asp.net gestione della_memoria
Asp.net gestione della_memoriaAsp.net gestione della_memoria
Asp.net gestione della_memoria
 

Supabase - Codemotion 2022 talk