Comments (1)
:txes
being a list of lists with maps in them does seem a little strange, doesn't it. I'll try to explain the reasoning behind this.
At the lowest level datomic.api/transact
(docs) expects its tx-data
argument to be a list of transaction statements. A statement is either:
A simple list-style statement:
[:db/add (d/tempid :db.part/tx) :something/title "Foo Bar"]
Or, the more complex map-style statement like the one in the example you cited.
:txes
is a list of list of statements because you may want the flexibility to attach a single name to multiple groups of statements, transacting them in sequence. For example, you may want to transact schema for multiple different entities in groups, or you may want to define schema in one transaction, then add data to that entity afterwards.
In the code, conformity/ensure-conforms iterates over each list of statements in txes, calling datomic.api/transact
for that sub-list.
I would say, if we removed one level nesting (to a single list, as you mentioned), then the key would more appropriately be called :tx
. I'm torn as to whether it would be worthwhile to muddy the conformity/ensure-conforms
code with a ":tx means :txes with this one list" semantic, but I would certainly entertain it if the implementation was clean.
I hope this helps, don't hesitate to ask any other questions you might have.
from conformity.
Related Issues (20)
- Recommended workflow to modify and ensure conformity of a norm HOT 1
- Release 0.3.3 is not tagged, release 0.3.4 is not present in the repo HOT 1
- call sync-schema between transacts? HOT 1
- Order matters when transacting norms HOT 3
- Support speculative transactions HOT 2
- Typo in README
- Add documentation for read-resource HOT 2
- Lookup refs for seed data HOT 5
- Adding to `:txes` seems hard HOT 1
- Rollback and reapply norms in development? HOT 6
- Migration with only `txes-fn` keeps being reapplied and fails HOT 7
- Support for batching programatic migrations HOT 1
- Client API is not supported. HOT 4
- Best practice for managing schema evolution/norm identity ? HOT 2
- Annotating conformity tx
- Tempids syntax for reference further down
- txes-fn Does not work when quoted. Works without quote HOT 1
- read-resource doesn't close reader
- Transacting norms to database in a deterministic order HOT 1
- No transactions provided for norm :XXX
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 conformity.