holochain / org

Organizational Repo for project-wide tickets
http://holochain.org
11 stars 1 forks source link

Wrap up migration: add example app #25

Open zippy opened 6 years ago

zippy commented 6 years ago

As an app developer I want an example of how migration works and can be used.

thedavidmeister commented 6 years ago

Here is the summary of my discussion with @zippy on this topic

What system level validation/logic and what application level validation/logic should be applied to migration entries is also an open question to some extent, e.g.:

There's also the "chicken and egg" problem to tackle, where migration logic must be written into an app before either the migration destination or reason is known. That is to say, writing the migration when you need it (how you'd do things in a traditional development cycle) is too late because any zome additions you make to manage the migration would immediately fork you out of the network you're trying to provide a migration for...

Somehow we have to show how a fully parameterised "context free migration" can be achieved without loss of:

Rather than getting lost in the infinite here, we've decided to start applying the basic foundations we have to some use cases and iterate based on what we learned. The examples will allow us to start developing "best practices" and can be documented and shown to people. Hopefully the examples will also give us context to start chipping away at the above (and probably raise more q's along the way).

The first 3 clear use-cases discussed are:

I'm going to start looking at the first use-case, transient app management. Wish me luck! 😄

thedavidmeister commented 6 years ago

ok, transient app management is probably the most complex use-case

i think it's counterproductive to try and jump from zero to chat room in one step

end goal: build a voting app on HC where users can migrate into and out of "voting rooms"

a "voting room" is a simple case of a chat room

step 1:

toy example:

tracking this example at #50

thedavidmeister commented 6 years ago

step 2:

toy example:

ddd-mtl commented 6 years ago

The DAO code in benchmarks has 'congress' which is like a voting room.

For another use-case, how about a GDPR case where a user leaves the app and wants his data removed. I think that's possible only with migration.

thedavidmeister commented 6 years ago

@ddd-mtl mmmmmmmm indeed, good ideas :D

zippy commented 6 years ago

I've started an article in the In Progress section of Articles on developer.holochain.net.