GithubHelp home page GithubHelp logo

isabella232 / velo-external-db Goto Github PK

View Code? Open in Web Editor NEW

This project forked from wix/velo-external-db

0.0 0.0 0.0 2.61 MB

License: MIT License

Shell 0.01% JavaScript 10.75% TypeScript 85.04% CSS 0.18% HCL 2.50% Dockerfile 0.07% EJS 1.45%

velo-external-db's Introduction

CI

Wix Velo External Database Adapter

Overview

Velo by Wix is a development platform built on top of Wix, adding a built-in database and node.js backend. The built-in database is a document based database optimized for websites and content. Depending on the specific workload, it can support 10K - 100K records, and for some workloads even more. It is globally replicated, has native support for PII encryption, GDPR, and other non-functional features. It runs on shared infrastructure and is fully managed by Wix.

However, requirements for data locality, regulations, data ownership, dedicated infrastructure, or workloads that demand specific engines may require an external database. This adapter enables connecting external database engines to your site.

Velo lets you connect an “external database” and map the structures of the underlying tables as wix-data collections. Once connected, you can work with the database and it’s collections in your site just as you would with the built-in database.

You can use wix-data APIs, display data from an external database collection in Wix Editor elements, use the data to create dynamic pages, and connect it to user input elements.

This project is a reference implementation of the wix-data SPI, allowing the development or extension of alternative external database adapters, to connect Velo with external databases.

For a detailed guide to installing and integrating this adapter on Google Cloud Platform, see the Integrate Your Google Cloud MySQL or Postgres Database with Your Velo Site article. If you are deploying to AWS, please follow the Integrate Your AWS RDS Database with Your Velo Site tutorial.

Architecture

The external database adapter is a Node.js server that implements the wix-data SPI. The server communicates with the database using the database's native protocol. It then translates the data into wix-data format and communicates with the Wix site via the wix-data SPI. Architecture diagram The Wix-Data SPI is a REST over HTTPS protocol in which the Wix site forwards database operations to the adapter (1), which translates them to native DB operations (2). The adapter calls the external database (3), gets the response (4), translates the response back to the wix-data protocol (5), and responds to the SPI request (6).

Deployment Considerations

Wix maintains a pre-built Docker container image that is ready to be deployed. Your should run the container as close as possible to a database to minimize the latency of the native DB protocol traffic between the adapter and the database. Additionally, some databases require persistent connections and are not suited to HTTP. Security and firewall configurations between the adapter and database should also be considered.

It is important to note the location of the deployed environment. The Wix infrastructure has a global presence, and site data is replicated worldwide to give your site visitors the best performance. Where the database is managed externally, it is important to set up the adapter and the database in the correct region for optimal performance.

Supported Databases and Limitations

The following lists the databases supported by the adapter:

Public Cloud Platforms

The adapter is a Docker container image, It is supported by any cloud environment that supports Docker containers. This includes:

velo-external-db's People

Contributors

ebaynash avatar evgolsh avatar github-sheriff avatar h0x91b-wix avatar idokah avatar michaelir avatar mxpol avatar noam-almog avatar

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.