cityofaustin / atd-data-tech

Austin Transportation Data & Technology Services
17 stars 2 forks source link

Discuss Knack scalability, sustainability, and ease of use #202

Closed amenity closed 5 years ago

amenity commented 5 years ago

Objective

As DTS begins building bigger Knack applications, let's take a moment to discuss the implications in terms of scalability, resiliency, and ease of delivery.

On the horizon:

Needs:

Potential solutions:

Participants

Diana, John, Mateo, Amenity


johnclary commented 5 years ago

My notes:

Future Solutions to Consider

Things We Can Do Today

Feature Wishlist (in order of priority)

  1. Version control
  2. Shared tables across apps
  3. Developer documentation within the app builder. E.g., business rules
  4. Usage Analytics and Logging
amenity commented 5 years ago

(A few additional points from my notes)

Summary While there are risks associated with giant apps, lack of version control, and kinda hack-y deployment processes, they are ultimately low: These are not critical resident-facing apps and it is acceptable for them to be offline when we are extending them. Were something to go very wrong, Knack takes daily snapshots of the app and database and can restore them for us.

For the time being, the benefits — speed of delivery and cost — far outweigh the risks. We are open to use a more scalable platform if the need arises, but nothing is urgent enough to warrant a full-blown evaluation of alternative tools.

Feature wishlist

App size

Knack object (post-meeting discussion with @mateoclarke)

amenity commented 5 years ago

@mateoclarke @dianamartin - feel free to add anything we missed!

mateoclarke commented 5 years ago

@amenity on the wishlist...

Ability to pull data out of Knack dynamically via an API

We do have this ability with the Knack API. I think the thing that is not possible is related to shared tables really but going a step further. Pulling tables dynamically from the Knack API and including them in another Knack app. And/or including data other foreign (non-Knack) APIs/endpoints. At least, thats what I understood yesterday.

so maybe instead it says:

Ability to pull data into Knack dynamically from external (non-knack) APIs

sergiogcx commented 5 years ago

@amenity I was speaking with @mateoclarke about the possibility of reaching out to them and ask for webhooks, it would be amazing to have real-time integration to our databases, that would also help us simplify our pipelines (avoid cron jobs or any complex sync jobs)

I did find 3rd party integrations that do something like this, but nothing on knack's side: https://zapier.com/apps/knack/integrations/webhook https://zapier.com/apps/knack/integrations/postgresql

amenity commented 5 years ago

Thanks, @mateoclarke. If we can't get it from other Knack apps though, should the wish be "Ability to pull data into Knack dynamically from another Knack app or an external (non-Knack) API"?

Pulling data from one Knack app into another would theoretically have the same result as being able to share tables... but maybe the data-feed approach would be more likely to open the door to accessing the data from non-Knack apps?

johnclary commented 5 years ago

Yes, ditto on webhooks. I've been wanting this for so long I forgot about it. I've talked to knack about this before, and they did mention a webhook-like functionality coming in the next major release. They described it as being able to create HTTP-request triggers attached to form submissions.