Comments (10)
Made some changes to those records in the current VF release, fyi. Should be stable for now from that side.
from hrea.
@fosterlynn I'm going to have to set this up so that fulfillments can only be managed via the planning DNA for now... does that sound like the most sensible course of action?
Can't have it work both ways- see https://forum.holochain.org/t/bidirectional-bridging/705
from hrea.
@pospi I can't respond from the technical HC side, but will say from the data/functional side that Fulfillments are only created when EconomicEvents are created, never from the planning side. For many use cases, EconomicEvent to Commitment is M:1, so in a lot of UI's, people will be either entering their EE, and picking what Commitment it fulfills (and assuming the same qty), or starting from the Commitment on the UI and entering an EE that fulfills the Commitment (again assuming the same qty). For other use cases the M:M will come into play, and people will be entering an EE, and picking more than one Commitment it fulfills and entering the fulfillment quantities. At least that is how I picture it for use cases I am aware of.
(For all process related things, it will pretty much be M:1, for exchange related things, it can frequently be M:M. We decided to keep the structure consistent (one way to do it) rather than two ways to do it, one of which is simpler.)
So as a gut response from the functional side without knowledge of the ins and outs of DNAs, I'd say manage Fulfillment from the Observation side, and make it part of that module.
from hrea.
I've actually done it the other way around, which I think makes more sense. A participant has no reason to log fulfillments if not for commitments they are aware of, correct? So should it not be something that is done in the planning DNA?
I think I see it as "fulfilling a commitment" is an action which happens in the planning
module, and observation
modules are notified (retroactively) by planning modules that their events have gone to fulfill other commitments.
To be clear- the records end up on both sides. See complete test case to get a sense of the data and links involved.
from hrea.
A participant has no reason to log fulfillments if not for commitments they are aware of, correct? So should it not be something that is done in the planning DNA?
A fulfillment makes no sense without both commitment and event in all cases.
I looked at your test case, and it looks like the event is recorded first in observation, then the fulfillment, which goes first to planning then to observation. So it still seems to me more clean to record the event and record the fulfillment in the same module, then duplicate it into the (already existing and known) planning data. But I suppose it doesn't really make a lot of difference. So you can ignore my gut sense of it, I'm not there. :)
from hrea.
I think it should be bidirectional, ideally- participants with access to either network should be able to trigger saving the fulfillment. But we'll see what the core team says about cyclic dependencies in DNA bridging configurations.
from hrea.
I think it should be bidirectional, ideally- participants with access to either network should be able to trigger saving the fulfillment.
What is the use case you imagine for coming at it from the commitment side instead of when logging an event? And what is the use case when would someone saving a fulfillment not have access to both observation and planning?
from hrea.
I think I'll split this out and log as a separate issue when it becomes an important detail. For now it's a minor technical thing- someone saving a fulfillment should always have access to both DNAs; the concern is only for others reading.
The basic implementation is more or less complete now, I just need to loosen the validation on the Satisfaction satisfiedBy Commitment
links, since they are optional (can also reference an EconomicEvent
in a foreign DNA). Expect a PR tomorrow some time.
from hrea.
I just need to loosen the validation on the Satisfaction satisfiedBy Commitment links, since they are optional (can also reference an EconomicEvent
That's probably one I forgot earlier, one of those has to be present (Commitment or EE).
from hrea.
Completed in #59.
from hrea.
Related Issues (20)
- Implement correct ordering of filtered resultsets in index query APIs
- Add orderBy params to allow ordering by multiple sets of time indexes
- Update internals of `hdk_records` to use `get_optimistic` once implemented
- update action identifiers to camelCase to match VF core spec
- follow-ups to 'revision_meta' HOT 2
- Return previous revision metadata with records to allow UIs to recurse backwards through record versions
- Return original revision metadata with record responses HOT 1
- Return future revision metadata with all record responses HOT 1
- fix input object type signature for vf-ui/graphql-client-holochain HOT 7
- Add zome API endpoints for retrieving previous record revisions by `ActionHash`
- Automate publication of node modules based on dual-tag release management process HOT 3
- stringIdRegex for Unit symbols is not loose enough for something like `$` HOT 2
- omiting unitId (or passing the wrong one) in economic events for resources that have a specified unitId throws a very dense error HOT 11
- Rearchitect indexing integrity zomes to fix hidden link conflicts & storage bloat HOT 4
- Obviate need for custom capability storage structs in inter-cell RPC calls HOT 1
- prior to Sapling release, update to holochain 0.0.161
- debug intermittent CI failures HOT 2
- Find an appropriate license holder
- vf-graphql-holochain can't handle an empty list for Event.inputOf without erroring HOT 1
- Implement correct ordering of self-referential local-only indexes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hrea.