Fork me on GitHub

@kenny I believe the transactor log includes a message when you attempt to exceed your peer limit. As for updating your license, if you have a paid license the easiest way is to start up a new stack against the ddb table with the new license key (i.e. run ensure cf script with new properties file followed by create stack command) . The new transactor(s) will be in standby and you can then kill the old stack. The new transactor will HA take over


With a starter license you'd need to take the active one down and start the new one, as starter license doesn't include ha


@afhammad pull is only against a specific entity. You can use pull-many for multiple entities . If you need all data across the db and can't specify your entities, you'd want to use query


We have a pro license. I tried updating the CF stack and it didn't seem to work. So then, as you suggested, I made a new stack, deleted the old one and that did the trick. Is this the recommended way of updating the transactor properties - creating a new stack and deleting the old one, not using the update stack feature?


Properties are only set on startup so you'd need to restart the transactor either way and the provided cf and ami don't provide a method to restart the transactor within an active instance


Utilizing HA fail over for this purpose will have substantially less downtime than trying to do a restart anyway


can a query return a collection of maps instead of vectors where key is the attribute?


No, query will return tuples. You'd need to put them in maps yourself


got it, thanks


You can use something like zipmap against a query result to get a map collection


I do it all the time. I hope it's not too horrible :)


What's odd is that the ensure-transactor command is able to create the required DynamoDB table. I also have tried to ping DynamoDB Local from the Datomic container, and that worked fine as well. Any help would be greatly appreciated 🙂


I'm also not sure why it's trying to reach random ports on


@yonatanel definitely using pull in the find specification is a great. I couldn't remember if it returned maps, but of course it does and is definitely the right approach for the use case @afhammad mentioned


How can I run a query that returns all :card/number ids where :card/tags (cardinality/many) has at least one of :tags/selected (cardinality/many) OR return ids for ALL :card/number if :tags/selected is empty.


this satisfies the first part, but obviously returns nothing if ?tag-ids is empty

[:find [?e ...]
 [_ :tags/selected ?tag-ids]
 [?e :card/number]
 [?e :card/tags ?tag-ids]]


You may want to either use an OR clause or consider using two separate queries. The nice thing about the peer model is you don’t pay the same cost for multiple queries (i.e. roundtrip on the wire) that you do with more traditional client/server systems


@marshall that is worth to be reminded about like once a week 👍


Is there any way to stop a gc? (e.g. in the event it starts taking up too much write capacity)


My only guess would be stop the transactor and let it fail over to the HA. But I'm not sure it would actually stop the job permanently.