All Projects → aquametalabs → Aquameta

aquametalabs / Aquameta

Licence: gpl-3.0
Web development platform built entirely in PostgreSQL

Projects that are alternatives of or similar to Aquameta

Xtuple
This repository contains the source code for the database schema for the PostBooks edition of xTuple ERP and xTuple's REST API server. The REST API server is written in JavaScript running on Node.js. The database schema for PostBooks runs on a PostgreSQL database server.
Stars: ✭ 247 (-74.97%)
Mutual labels:  rest-api, plpgsql, postgresql
Pgmemento
Audit trail with schema versioning for PostgreSQL using transaction-based logging
Stars: ✭ 260 (-73.66%)
Mutual labels:  plpgsql, postgresql
Php Crud Api
Single file PHP script that adds a REST API to a SQL database
Stars: ✭ 2,904 (+194.22%)
Mutual labels:  rest-api, postgresql
Practical Sql
Code and Data for the book "Practical SQL" by Anthony DeBarros, published by No Starch Press (2018).
Stars: ✭ 392 (-60.28%)
Mutual labels:  plpgsql, postgresql
Pgwatch2
PostgreSQL metrics monitor/dashboard
Stars: ✭ 960 (-2.74%)
Mutual labels:  plpgsql, postgresql
Prest
PostgreSQL ➕ REST, low-code, simplify and accelerate development, ⚡ instant, realtime, high-performance on any Postgres application, existing or new
Stars: ✭ 3,023 (+206.28%)
Mutual labels:  rest-api, postgresql
Pg Listen
📡 PostgreSQL LISTEN & NOTIFY for node.js that finally works.
Stars: ✭ 348 (-64.74%)
Mutual labels:  events, postgresql
Event Driven Spring Boot
Example Application to demo various flavours of handling domain events in Spring Boot
Stars: ✭ 194 (-80.34%)
Mutual labels:  rest-api, events
Postgrest Starter Kit
Starter Kit and tooling for authoring REST API backends with PostgREST
Stars: ✭ 657 (-33.43%)
Mutual labels:  plpgsql, postgresql
Blog
Everything about database,business.(Most for PostgreSQL).
Stars: ✭ 6,330 (+541.34%)
Mutual labels:  plpgsql, postgresql
Great Big Example Application
A full-stack example app built with JHipster, Spring Boot, Kotlin, Angular 4, ngrx, and Webpack
Stars: ✭ 899 (-8.92%)
Mutual labels:  rest-api, postgresql
Datoji
A tiny JSON storage service. Create, Read, Update, Delete and Search JSON data.
Stars: ✭ 222 (-77.51%)
Mutual labels:  rest-api, postgresql
Spring Boot Postgresql Jpa Hibernate Rest Api Demo
Building RESTful APIs with Spring Boot, PostgreSQL, JPA and Hibernate
Stars: ✭ 209 (-78.82%)
Mutual labels:  rest-api, postgresql
Postgis
PostGIS spatial database extension to PostgreSQL [mirror]
Stars: ✭ 925 (-6.28%)
Mutual labels:  plpgsql, postgresql
Postgrest Docs
Documentation for
Stars: ✭ 202 (-79.53%)
Mutual labels:  rest-api, postgresql
Plpgsql check
plpgsql_check is linter tool for language PL/pgSQL (native language for PostgreSQL store procedures).
Stars: ✭ 322 (-67.38%)
Mutual labels:  plpgsql, postgresql
Sql Fundamentals
👨‍🏫 Mike's SQL Fundamentals and Professional SQL Courses
Stars: ✭ 140 (-85.82%)
Mutual labels:  rest-api, postgresql
Easyappointments
Easy!Appointments is a highly customizable web application that allows customers to book appointments with you via a sophisticated web interface. Moreover, it provides the ability to sync your data with Google Calendar so you can use them with other services. It is an open source project that you can download and install even for commercial use. Easy!Appointments will run smoothly with your existing website as it can be installed in a single folder of the server and of course share an existing database.
Stars: ✭ 2,013 (+103.95%)
Mutual labels:  rest-api, events
Filterlists
🛡 The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.
Stars: ✭ 653 (-33.84%)
Mutual labels:  rest-api, postgresql
Django Rest Booking Api
A Restful api which allows you to book sports events or update existing odds.
Stars: ✭ 24 (-97.57%)
Mutual labels:  rest-api, postgresql

Aquameta v0.3

START!

Golang install:

# change this to `go get` ?
git clone https://github.com/aquametalabs/aquameta.git
cd aquameta
go build
./aquameta

Status

Aquameta is an experimental project, still in early stages of development. It is not suitable for production development and should not be used in an untrusted or mission-critical environment.

Introduction

People say the dawn of the Information Age was about wires and semiconductors. But consider the humble relational database.

From my seat, Edgar Codd kind of figured it all out.

The year was 1969, and Edgar F. (Ted) Codd revealed his conception of the Relational Model, a general purpose algebra for data management. If correct, his model, he purported, should be able to go into any domain of complexity and serve as an adequate abstraction for representing it, slicing and dicing it in infinite ways, and generally making sense of it.

The relational model, and the relational databases that followed, were the foundation of the information age, at least to a person interested in data. 50 years later, it remains the most popular model for databases -- and certainly not without a fight.

It sure looks like Codd got something right. The humble relational database is still king of the information jungle. If history is any indicator, it is the best tool us crazy humans have found for making sense of things.

Well, Aquameta is about making sense of things. It is a tool for interacting with the world through the lens of data.

The world could learn a lot from old Edgar F. Codd about how to make sense of things. Us data hackers really have a special power, and it's high time we show the rest of the world how it's done.

Aquameta is a tool for seeing the world through the lens of data. It's designed to make the language of data as accessible as possible, without dumbing it down. To programmers, you might think of Aquameta as a "PostgreSQL Admin GUI". But this ain't your grandma's PGAdmin. (Sorry PGAdmin! :))

Here's why.

First Principles

Under the hood, Aquameta has really internalized Codd's Relational Model -- to an arguably absurd degree.

Here's a thought experiment: What if we pretended for a minute that today's programming ecosystem wasn't a sprawling jungle of almost limitless complexity, but instead, "just another customer's domain knowledge"? What if we treated our own dev environment the same as we would a new customer who wants to manage her baseball card collection or keep inventory in their warehouse?

I'll take a guess what old Edgar Codd would do: Put everything in the database!

Aquameta is the result of many years of exploring the outcomes of this thought experiment. We've modeled the web stack and the database as relational data, and prototyped the tools for making this a conceivably pleasant experience. The result is a huge database schema that, while daunting from a distance, should be instantly familiar to anyone who already knows web development. It is everything you already know, just represented in the language of data.

Through this process of exploring a "datafied" web stack, we have climbed many mountains, explored many valleys, seen the lay of the land, and can say with 100% certainty:

This is the new hotness. This is where the industry inevitably MUST go if we want to leave the bad old days behind.

You know that feeling that an experienced programmer has about the industry? That feeling that says something is deeply flawed about how we develop software? That feel is true and correct! Here's why:

The software industry doesn't have a shared information model whose foundation is a mathematical algebra. Instead we have syntax. Lots of it! We have files, and directories. The files plus syntax paradigm can't manage the complexity we're throwing at it, and the consequences of this evolutionary misstep are everywhere -- once you see it.

Come take a look.

Architecture

Alright, so what is it and how does it work?

On the surface, Aquameta looks like a rapid prototyping web dev IDE, or maybe a PostgreSQL admin GUI, or maybe a GUI for git. But under the hood it is just a bunch of schema for your data.

Here's an example, the endpoint schema:

Hi I am a schema.

Aquameta has five PostgreSQL extensions, each of which roughly corresponds to a layer or tool that's essential to the web stack. As just a big database, It has ~60 tables, ~50 views and ~90 stored procedures. The HTTP Server is programmed in Go, but it is just a thin wrapper that hands off requests to a stored procedure in PostgreSQL:

endpoint.request('GET','/index.html','...query string args...`,`...post vars...`)

PostgreSQL handles it from there.

Aquameta contains five core PostgreSQL extensions, which together purport themselves to be a web development stack:

  • meta - Writable system catalog for PostgreSQL, making most database admin tasks possible as data manipulation.
  • bundle - Version control system similar to git but for database rows instead of files.
  • event - Lets you watch tables, rows or columns for inserts, updates and deletes, and get a notification as such.
  • http - Minimalist web server that provides a REST API to the database and simple static/templated resource hosting.
  • widget - Minimalist web component framework that says, "Widgets are made up of HTML, CSS and Javascript, and have inputs. Proceed."
  • is semantics in core?

Poke around the schemas to see how things look, endpoint is a good place to start.

Aquameta is a very unopinionated stack, except for that one big opinion about everything being data. From there, our tables are intended to just express "how the web works" and leave the rest up to you. You can use any client-side framework you please, and the backend supports several procedural languages.

It's tuples all the way down. Well, that's the idea anyway. Of course there is still the Operating System down below PostgreSQL, with all it's "files" and so forth. But if we follow this idea to its natural conclusions, we would make all that look a lot different too.

Aquameta's long-term trajectory is to find the places where putting things in the database makes them easier to work with. We think there is a lot more of opportunity here. If you're up for an adventure into the unknown, I hope you'll give it a try.

License

Aquameta Core is currently distributed under the GNU Public License (GPL) version 3.

We don't have a legal team to help us make all the best decisions here, but the intention is to follow in the footsteps of Linux: Provide an open source core that must remain open source, but let users develop and license software built with Aquameta as they see fit.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].