The first step is to consider serialization, for which point you should answer 2 questions:
- do I want to query the list elements?
- do I want to benefit from the write semantics (granular updates, upserts etc.) of Datomic to update the content of the list?
If the answer is no for both questions, then you can serialize - for choosing the serialization format, you should consider performance, readability, and availability on the Transactor. For instance, EDN is readable, slow, and available on the Transactor. JSON is readable, fast, and not available in the Transactor unless you’ve added it to the Transactor classpath.
When not serializing, I’ve been using ‘Array Lists’, i.e a to-many, component relationship to Cell entities that have an ‘index’ attribute and a ‘content’ attribute: Datofu provides an implementation of that. I find it more pleasant to query against than a Linked List, but the downside is that some atomic updates are not as easy to write, e.g inserting an element in the middle of the list.