-
Notifications
You must be signed in to change notification settings - Fork 3
Introuduction
Created with love from Italy 💚🤍❤️
Created with:
Prisma Cluster is not officially Releated to Prisma.io , I named this project "Prisma Cluster" because it use the powerfull of Prisma's introspection and interfacing .
This project have the goal to make more "simple" make an Microservice infrastructure and use it with an RPC server to provide data. The same project is already pre-configured to be scalable in a Replication structure where this project has a slave DB from an exnternal Master.
The Repository will be updated everytime it's needed, the same project is released with Open Source License, The usage and configuration is your business.
Prisma Cluster is an Full Stack Service Manager, using the Next-Generation ORM Prisma and the Powerfull of Jayson RPC + Dockerized Postgres, Prisma Cluster allow you to create an cluster of Databases with:
- (Optional Slave DB connected with external Parent DB)
- Unique Database per service with specify user / credentials
- Automatic link to Service DB with Service Controller and RPC server
- Automatic Storage creation for the service and auto-link with the service's controllers
- Full Backup creation
- Full Rollback to an specific Backup
- Service deletion tracker
- Service's data export (DB's data and files (files are optional) )
- Service's data import (DB's data and files (files are optional) )
- Gloabl's data export (DB's data and files (filese are optional) )
- Gloabl's data import (DB's data and files (filese are optional) )
- Import Tables / Data from existing projects
- Generate Model and Interface using Database Introspection
All that just using the CLI, allowing you to focus on logical service architecture without lose time on configurations and links.
Prisma is the ORM, generate the models and client interface (for client interface I mean the client library to retrieve database objects)
Jayson is the RPC Compilant, will be in listening on TCP Port (default: 3000) and will determinate the service's router, method and controler to invoke
Node-Filestorage is the Storage Engine, will handle the storage, please read the documentation here: petersirka/node-filestorage
Cron is the Cron Job Tool, will handle the cron jobs, please read the documentation here: kelektiv/node-cron
Node-Cache is a simple caching module node-cache/node-cache
Look at Logical Architecture to understand the pipeline
- Why Prisma Cluster is in listening on TCP and not on HTTP/s?
Simple, many devs / sites / platforms are already stuctured with API, plus for security reasons many don't want expose directly the Database server, so... to make comfortable with the major realities outside here the most simple solution is to make the RPC call from your API server, in this way the API server will delivery directly the result of the RPC call without expose the database server
Simple example of this project architecture with 2 services
|