{"id":27389297,"url":"https://github.com/vvvvalvalval/onodrim","last_synced_at":"2026-04-18T10:35:35.563Z","repository":{"id":75693555,"uuid":"92024776","full_name":"vvvvalvalval/onodrim","owner":"vvvvalvalval","description":"enhanced Datomic entities","archived":false,"fork":false,"pushed_at":"2017-05-22T07:32:51.000Z","size":13,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-30T16:53:32.020Z","etag":null,"topics":["database","datomic","derived-data","entity","polymorphism"],"latest_commit_sha":null,"homepage":null,"language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/vvvvalvalval.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-05-22T07:32:36.000Z","updated_at":"2019-03-01T19:42:24.000Z","dependencies_parsed_at":"2023-06-07T09:36:09.101Z","dependency_job_id":null,"html_url":"https://github.com/vvvvalvalval/onodrim","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/vvvvalvalval/onodrim","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvvalvalval%2Fonodrim","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvvalvalval%2Fonodrim/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvvalvalval%2Fonodrim/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvvalvalval%2Fonodrim/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/vvvvalvalval","download_url":"https://codeload.github.com/vvvvalvalval/onodrim/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/vvvvalvalval%2Fonodrim/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31966114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["database","datomic","derived-data","entity","polymorphism"],"created_at":"2025-04-13T19:13:55.926Z","updated_at":"2026-04-18T10:35:35.556Z","avatar_url":"https://github.com/vvvvalvalval.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Onodrim\n\nThis library provides an abstraction similar to the Datomic Entity API, but enhanced with additional capabilities:\n\n * derived data\n * allow for other source of truths than Datomic Database values\n * allow for other identifiers than Datomic idents\n * allow for other value types than what Datomic can store\n * polymorphism - TODO does this need to be provided by a library, or should the implement it on top of derived data using multimethods / protocols ?\n * getters (i.e keys with arguments) - TODO is this really such a good idea ? (Val, 20 May 2017)\n\nHelps you put a healthy indirection between your business logic and the schema of your Datomic storage, which yields better evolvability.\n\nDerived data is often a necessity for business logic, but the business logic usually needn't know the difference between what information is derived\nand what information is stored.\n \nTools like GraphQL implementations / server-side Om Next parsers can help you offer derived data, but they will typically make it available\nat the boundary between your server and your clients, i.e in a place where only your clients can leverage it.\nBut it can be useful to make such derived data available at the *foundation* of your business logic; then both your serverside business logic\nand your implementation client-serving tools can benefit from .\n\nTODO is there such a difference between this and what a lib like Plumatic/Graph can offer, once you've taken Datomic out? \n  - yup, maybe polymorphism, (assuming you really need polymorphism to be implemented in this way).\n  - maybe also getters, but you may implement those by putting memoized functions as values anyway\n  - essentially, the distinction between scalar and ref values\n\nTODO should derived ref attributes receive an entity or an eid ?\n\n## Usage\n\nFIXME\n\n## TODO\n\n* rename to Onodrim\n\n## License\n\nCopyright © 2017 FIXME\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvvvalvalval%2Fonodrim","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvvvvalvalval%2Fonodrim","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvvvvalvalval%2Fonodrim/lists"}