2. A little bit about me
Matteo Collina, Ph.D.
Co-Founder & CTO, Platformatic
● Node.js Technical Steering Committee member
○ Triager for Node.js vulnerabilities
○ HTTP, Streams, diagnostics, …
● Board member OpenJS Foundation
● 8 years as a consultant focused on Node.js
● Software Architect
● Created Fastify and Pino
● 12 billions download/year on NPM.
Subscribe to https://nodeland.dev my week newsletter about all things Node.js.
11. ORM promise us a
neat, well organized
codebase with the
concept of Models.
A Model represents a
row in the database
as well as all the
relations.
12. What happens to
your application
when it uses an
ORM?
It hibernates*
*pun intended
13. The problem is in the Model concept
Why ORMs are an anti-pattern
Every model has 3
responsibilities:
1. Manage persistency,
including relationships;
2. Hold the data in memory;
3. Implement business logic.
14. Model-View-Controller
The unscalable architecture: Monoliths
The MVC architecture has only
three “places” where you can
add new features:
1. Models
2. Views
3. Controllers
Soon, you will have 2000
models.
18. Modules can help scale your code complexity
The Modular Monolith as a solution
Fastify can
help structure
your applications
in modules
19. Microservices solves the logistical complexity
Microservices as a solution
Each team
manages one
or more
microservices.
20. What would you choose?
The pragmatic choice is to choose the framework that enables us to build the most complex features.
21. The best line of code is the one I don’t have to type.
22. My backend requirements
Things are going to get tricky
1. Can run everything locally
2. Extensible via code & native database
language (e.g. SQL)
3. Have basic authorization support
4. GraphQL and REST Support
5. Apollo Federation Support
6. Deployable cloud-prem
7. Support multiple databases (MySQL,
MariaDB, SQLite, PostgreSQL)
I want a
backend that
takes no time
to build but it’s
as flexible as I
would build it
myself
28. Platformatic DB Architecture
1. Platformatic DB can be
extended, so you don’t need
to deploy “functions”
2. Based on Fastify plugins,
you can rely on the Node.js
and Fastify ecosystems
3. You can use the individual
components of Platformatic
DB, completely skipping our
server.
29. Claim an invite at https://platformatic.dev
Platformatic Cloud is now in private beta
@matteocollina
https://nodeland.dev