Giter Site home page Giter Site logo

crispy's Introduction

crispy

Docs/Links/Infrastructure. Successor to database management tools

Overview

This is a tool to make developers life easier and database setup more reliable.

Architecture

Components

They must manage all database operations and be able to execute them in a particular worker.

The main goal for those Components to be responsible for running database operations in worker and give the user the ability to manage it from WEB or by using CLI

How components will interact with each other

Architecture diagram

crispy's People

Contributors

vitaliimelnychuk avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

crispy's Issues

Describe server <-> library communication

As an example here https://github.com/melnychukvitaliy/mysql-migrate we've used simple https://github.com/db-migrate/node-db-migrate library to manage migration and percona toolkit to run them

We need our interface on how API will communicate with migration libraries (knexjs, db-migrate,..)

Here are the main concepts we need from the library:

  • unique migration number
  • migration command interface -> should be run in crispy-worker where we have database connection
  • library commands to register migrations. For example, publish -> store migration in our database and show in crispy-web

Propose CI/CD setup

We have 3 basic components:

  • crispy-web
  • crispy-api
  • crispy-worker

Once they have the initial setup we need docker based environment setup there and CI setup as well
(can be developed with Github Actions)

Add interface how components interact with each other

As discussed in the group meeting, there are two possible approaches.

Option 1. Develop own format for migrations; convert existing migrations wroten on Knex, Phinx, etc. into Crispy format; build internal components relying on Crispy format only. This approach will allow localizing a need for 3d party adapters to a single point - conversion of migration files. The downside is that we need to re-implement all the low-level mechanics of DB migrations.

Option 2. Develop a set of components on top of existing migrations and leveraging existing tool's binaries. This requires less overhead to migrate from existing migrations framework to Crispy, but creates maintenance overhead by supporting adapters in multiple junctions of the stack.

See the schema for both options:
IMG_0528

We decided to go with the option 1 since it's easier to start with and has a more clear roadmap.

Originally posted by @xTNTx in #5 (comment)

Based on the discussion we had there, we need better docs for crispy Components and how they interact with each other

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.