Skip to content

Introuduction

William Peter Falci edited this page May 13, 2022 · 3 revisions

PRISMA CLUSTER

Created with love from Italy 💚🤍❤️


Created with:

Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge Generic badge


Disclaimer

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.

FOSSA Status

What is Prisma Cluster?

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

Logical Architecture

Simple example of this project architecture with 2 services

Clone this wiki locally