Platformatic is a collection of Open Source tools designed to eliminate friction in backend development. The base services are:
Finally, platformatic components can be reused with stackables
A Platformatic Service is an HTTP server based on Fastify that allows developers to build robust APIs with Node.js. With Platformatic Service you can:
- Add custom functionality in a Fastify plugin
- Optionally user TypeScript to write your application code
A Platformatic Service is the basic building block of a Platformatic application.
Platformatic DB can expose a SQL database by dynamically mapping it to REST/OpenAPI and GraphQL endpoints. It supports a limited subset of the SQL query language, but also allows developers to add their own custom routes and resolvers.
Platformatic DB is composed of a few key libraries:
@platformatic/sql-mapper- follows the Data Mapper pattern to build an API on top of a SQL database. Internally it uses the
sql-mapperto create a series of REST routes and matching OpenAPI definitions. Internally it uses
sql-mapperto create a GraphQL endpoint and schema.
sql-graphqlalso support Federation. Internally it uses
Platformatic DB allows you to load a Fastify plugin during server startup that contains your own application-specific code. The plugin can add more routes or resolvers — these will automatically be shown in the OpenAPI and GraphQL schemas.
SQL database migrations are also supported. They're implemented internally with the
Platformatic Composer is an HTTP server that automatically aggregates multiple services APIs into a single API.
The composer acts as a proxy for the underlying services, and automatically generates an OpenAPI definition that combines all the services' routes, acting as reverse proxy for the composed services.
Platformatic Runtime is an environment for running multiple Platformatic microservices as a single monolithic deployment unit.
In a Platformatic Runtime, each service is a separate process that communicates with Interservice communication using private message passing. The Runtime exposes an "entrypoint" API for the whole runtime. Only the entrypoint binds to an operating system port and can be reached from outside of the runtime.
Platformatic Stackables are reusable components that can be used to build Platformatic Services. Services can extends these modules and add custom functionalities.
This is useful to publish the application on the public npm registry (or a private one!), including building your own CLI, or to create a specialized template for your organization to allow for centralized bugfixes and updates.