This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2018-11-02
Channels
- # announcements (2)
- # aws (13)
- # beginners (52)
- # boot (10)
- # calva (2)
- # cider (23)
- # clara (23)
- # cljs-dev (16)
- # cljsrn (5)
- # clojure (69)
- # clojure-brasil (1)
- # clojure-conj (3)
- # clojure-dev (41)
- # clojure-india (2)
- # clojure-italy (39)
- # clojure-nl (5)
- # clojure-russia (2)
- # clojure-spec (5)
- # clojure-uk (51)
- # clojurescript (78)
- # code-reviews (13)
- # data-science (2)
- # datascript (22)
- # datomic (47)
- # duct (13)
- # emacs (4)
- # figwheel-main (45)
- # fulcro (85)
- # funcool (4)
- # jobs (9)
- # nrepl (106)
- # off-topic (5)
- # pathom (7)
- # pedestal (2)
- # re-frame (17)
- # reagent (32)
- # reitit (7)
- # ring-swagger (2)
- # shadow-cljs (33)
- # spacemacs (4)
- # specter (2)
- # tools-deps (203)
- # vim (1)
I have a questions about Datomic Ions. First of all I want to say that I like ideas behind this technology. As well as I like AWS lambda from a time when I met it. But I have a problem when I add a dependency “ buddy/buddy-sign {:mvn/version "3.0.0" }” to my project and including name spaces from this lib to my module (:require [buddy.core.keys :as keys] ) Before this my lambda works without problem on AWS cloud. After this It doesn’t work. It return misleading 502 error but AFAIU main problem that Datomic ions can not compile my lambda on AWS cloud because of dependencies conflicts. Also I got this not very useful stack trace: {"errorMessage":"java.net.ConnectException: Connection refused","errorType":"datomic.ion.lambda.handler.exceptions.Fault","stackTrace":["datomic.ion.lambda.handler$throw_anomaly.invokeStatic(handler.clj:24)", "datomic.ion.lambda.handler$throw_anomaly.invoke(handler.clj:20)", "datomic.ion.lambda.handler.Handler.on_anomaly(handler.clj:139)", "datomic.ion.lambda.handler.Handler.handle_request(handler.clj:155)", "datomic.ion.lambda.handler$fn__4075$G__4011__4080.invoke(handler.clj:70)", "datomic.ion.lambda.handler$fn__4075$G__4010__4086.invoke(handler.clj:70)", "clojure.lang.Var.invoke(Var.java:396)", "datomic.ion.lambda.handler.Thunk.handleRequest(Thunk.java:35)"]} I try to use different workarounds but without success. I use last version of Datomic ions. As I found others inside this channel, who have similar problems. Quote “It was working fine as of 0.9.160 and no cheshire. The house of cards started collapsing with the introduction of cheshire, alas.” So my questions is this : Datomics Ions can not work with some libraries even with popular ones like “buddy”, isn’t it? Does anybody know when or how this problem can be resolved? IMHO Datomics Ions is not production ready without ability to work other libraries.
do you get :dependency-conflicts
from your push? Cf https://docs.datomic.com/cloud/ions/ions-reference.html#dependency-conflicts
cheshire (jackson, actually) is a mine field generally with dependency conflicts; possibly you can force a version of cheshire or jackson that is compatible with datomic’s classpath
@rustem.zhunusov I got conflicts when I started as well. As @csm says, you need to fix these warnings from the push and that will fix the connectivity problems. In my case, the s3-creds lib caused connection problems. Once fixed, Ions works fine with many libs. I have 7 non-Datomic libs working well in my project.
I am writing to Datomic. After 1 transaction of a certain type is done, I want to query the database for transactions of this type (which some predicates). this will happen frequently. Would it be good to use the transaction-report queue for this, or do I have to have a poller running every X seconds?
For local dev purposes, do I need to set up a Peer even to work against datomic:
, or is there a way of doing that directly from the Client lib?
@jarvinenemil just to confirm, are you using on-prem? the report queue stuff isn't available in Cloud. Beyond that, as is frequently the case, the answer is 'it depends'. We do a lot of this by annotating the transaction with an :event-type
, but the usecases vary. We have some code that uses the report queue, but all of our newer stuff is in cloud. So in that case we have 'pollers' that read the transaction log, save their offsets, etc. In both of those cases though we're interested the linear, temporal stream of stuff that's happening. If your need is more general, you can also just poll with regular queries
writing that up. thank you. I will have a lot of writes/reads per second in this part of the system, it's a game queue with different alternatives that i need to "query" on.
I'll consider that one, I want to have close to instant queue-pop so I will look around 🙂
I used Core-async for this stuff before but now with the additional parameters that i need to choose players from I need to do something else.
ah yes
indeed, I will do some more research and try different things. I will build a game queue which batches different players based on their options with lightning fast speed. 🙂
figure this is good a place as any: just wanted to give a heads up that there's a now-broken link to the strangeloop preconf at the bottom of the datomic site 😉
also I'm now sad that I missed it after tracking down the real URL, realizing it was in September, and seeing who the speakers were. It's all datomics fault ;_;
page link?
bottom of https://www.datomic.com/
ah, I see it - that’s dead now
but we’re doing the same(ish) training the day before Clojure/conj!
http://2018.clojure-conj.org/training/ https://ti.to/cognitect/clojureconj-2018/with/vpty5pljlzi
if you’re interested…