Open zippy opened 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! 😄
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
true
to vote on some system entitystep 1:
toy example:
tracking this example at #50
step 2:
toy example:
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.
@ddd-mtl mmmmmmmm indeed, good ideas :D
As an app developer I want an example of how migration works and can be used.