GithubHelp home page GithubHelp logo

No direct CRUD (well, CUD) about hrea HOT 9 CLOSED

fosterlynn avatar fosterlynn commented on August 24, 2024
No direct CRUD (well, CUD)

from hrea.

Comments (9)

pospi avatar pospi commented on August 24, 2024 1

@pospi has proposed dividing things into phases, so we should be sure that the data we need for this is present in the phase where we need it.

I'm not sure "phases" means the same thing to both of us so I will leave that out of the discussion unless my updates in the other thread leave you still thinking it is relevant here.

I've been thinking we should have record of every change made to anything, and thought that was a tenet of HC too

Yes, we have that. "What was updated" is available too. We probably don't need things like "dateModified" because the "dateCreated" of the updating record will tell you when the original was updated / overwritten.

from hrea.

sqykly avatar sqykly commented on August 24, 2024

Holochain keeps a source for each data element (including "overwritten" records, deleted records, and links). The source is the hash of the HoloAgent that did the operation. Is there a need for more, e.g. date modified? What else should be a part of these records?

If we do something similar to HoloObject, that might be the best place to insert properties for it.

from hrea.

sqykly avatar sqykly commented on August 24, 2024

This is going to tie in with the ongoing discussion on the fate of the core abstractions, I believe. @pospi has proposed dividing things into phases, so we should be sure that the data we need for this is present in the phase where we need it.

from hrea.

fosterlynn avatar fosterlynn commented on August 24, 2024

The source is the hash of the HoloAgent that did the operation. Is there a need for more, e.g. date modified? What else should be a part of these records?

Does that mean that what we know about successive updates to something is the agent who did it but not what was updated? I've been thinking we should have record of every change made to anything, and thought that was a tenet of HC too. But up for discussion...

I'll have to catch up to you all on the "phases" thing,

from hrea.

sqykly avatar sqykly commented on August 24, 2024

Indeed, no data is ever lost on the DHT. It gets marked "deleted" or "replaced", but we can load up every single version of the data (along with who is responsible for it) at any time. If we don't need any additional fields, this is a solved problem.

However, let's first consider that the source field is only the individual holo-agent that did the CRUD. The only way to record something like onBehalfOf for representatives taking action as the group agent is to use a further abstraction. Conversely, if we want to hide the individual on the DHT and designate the group agent as source, we must have actual holo-agents for group agents.

I.E. if that capability is really important, we have our answers about group agents.

from hrea.

fosterlynn avatar fosterlynn commented on August 24, 2024

If we don't need any additional fields, this is a solved problem.

What does it mean "additional fields"? We would want all the data that was created or changed. I suppose we would want who changed it (you said we have that - it would be a person or user, not a group). And timestamp of the CRUD. The group will be elsewhere on the record, assuming we get groups properly represented as an agent, so that should be fine. No need for onBehalfOf.

If we got that, I'll close this. Or you can if you like.

from hrea.

sqykly avatar sqykly commented on August 24, 2024

Holochain is going to record only a timestamp and one agent that is the source of the CRUD. If we do integrate group agents as de facto agents, then the source will only be recorded as the group agent, not the individual. If group agents are an abstraction of some sort, only the individual agent will be recorded.

Additional fields would mean metadata above and beyond what Holochain records on its own, such as onBehalfOf to indicate a group agent, or a field to record the individual who acted on behalf of the group, if group agents are de facto agents.

from hrea.

pospi avatar pospi commented on August 24, 2024

This flows into my comments on group agents, which I don't think are recorded anywhere yet... but I think:

Holochain is going to record only a timestamp and one agent that is the source of the CRUD

Agreed.

If we do integrate group agents as de facto agents, then the source will only be recorded as the group agent, not the individual. If group agents are an abstraction of some sort, only the individual agent will be recorded.

I see that differently- I think both need to be recorded. The individual should be recorded as the agent who made the transaction (not sure if we need to do this, or whether Holochain does it for us); but the group agent should be recorded as the "owner" of any created records.

I'm using "owner" loosely- other roles & relationships will no doubt be required, and how onBehalfOf is treated will be up to whatever makes sense for each individual action.

from hrea.

fosterlynn avatar fosterlynn commented on August 24, 2024

I'm closing this, the original issue is answered. And I think we have alternate issues for other things that came up along the way.

from hrea.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.