More on APIs

Recently I got the inital implementation of application isolates working (in browser only, without pulling application code from remote location) and as part of that did a pass on API implementations.
...

Everything as Repository

Unlike JPA/Hibernate, AIRport entity management is sessionless. The way it accomplishes change detection is via original values tracking in a hidden object property. Recently I've been debugging Insert vs Update detection and realized that everything is easier with Ids that are generated. If the Id is present in the input it cannot be an Insert. That got me thinking - should all entities be forced to have generated Ids?
...

Migrating the data

Schema migrations are hard in general. In AIRport/Turbase schema migrations are even harder for a number of reasons:
...

Securing Turbase data

In AIRport any given virtual repository can be in multiple states at the same time. This is because multiple users can be using the same virtual repository. Since they may be using a repository while being offline, the repository will get out of sync with the rest of the devices that have it. Hence, to keep track of that Turbase version controls all of virtual repositories using a simple Directed Acyclical Graph. ...

Turbase - AIRport with Advertisement Engine

For a while now AIRport has been the brand for the AIR technology. And also for quite some time we've been dicussing building an adverisement engine on top of AIRport to generate revenue that can be shared with Apps and users. Now finally I've come up with a good enough of a brand for the actual App that will be installed on phones and other devices - Turbase. ...

Interdependent Components

I've now come to a full realization of what logic in isloates mean - locally-run vetted components. This trully changes the way AIRport applications can be written. Apps are no longer required to maintain expensive (to most people on the planet) server side components. Also that allows for a degree of independent developer specialization that is already standard among most professional programmers and UI designers. ...

Injecting schemas

Internally Airport used "on the stack", token based dependency injection to allow for seamless framework upgrades on each device. However this type of injection is non-standard and can throw schema developers off (as something unfamiliar and therefore unnatural). With introduction of isolates adding more tranditional constructor based dependency injection scheme becomes possible. ...

Schemas in action

The next step after code execution isolates and schema upgrade strategy is defining exactly how schemas will be installed and how they will run. Here is my first (detailed) take on it. ...

Schema Interoperability and Upgrades

Naturally occurring
Another issue that has been bugging me for quite some time is how exactly schema upgrades will work. My initial thoughts have been about building a framework that will enforce backwards compatibility for schemas. Switching to natural DAO logic lead me to re-think the approach and make it more natural, give more freedom to schema developers and define schema interoperability rules.
...

To boldly Go and isolate

The solution to natural DAO logic
For quite a while now I've been dreading having to write Firebase-like rules for mutation logic. I have a number of reservations about writing a custom syntax engine:
...

Free at Last

4 month have passed since my last blog post and I didn't have any time to devote to coding. Hence I'm open sourcing the projects "as is" (with a bit of additional documentation).
...

Highway - The Begining

I haven't head as much time as I have hoped to develop Highway last year. So during the beginning of this year I'm focusing on developing a prototype product based on Highway and developing Highway itself in the process.
...

Transactionality

Ability to support transactions has always been important with AIR but the API has been in flux until now. Here is the description of the final version of the API.
...

Highway

Quite a bit of code written as part of the Airport effort really has little to do with the concept of Autonomous Interdependent Repositories (AIR).
Here is a list core, already working features...

Air Tower = IPFS/Peergos + Airport

Since the beginning of the Airport project the question of how to share data was outstanding.  Eventually I started the automated-gateway-transit library to act as a gateway between airport instances...

The Internet came together as a miracle, really. Anyone with a wire can publish, we need to keep it that way.

Barry Diller

Airport in Cordova

Initial designs behind Airport called for an all-in-browser framework. However after I did enough research this proved to be impractical for the following reasons...

Build time Queries

Just like with persistence operations it is possible to process query operations at build time, while keeping all of the benefits of TypeScript type checking and auto-completion

First Application

The relevant part of the first Airport application Votecube has been finished. The application itself is still a prototype (currently running on Firebase) and is yet to get it's long term back-end. But the font end is finished! ...