juxt

dominicm 2017-03-15T09:35:13.384497Z

@stijn Not quite understanding the question, sorry. Can you rephrase?

2017-03-15T17:15:13.806534Z

any bidi users here that use swagger or other auto generated api documentation? im writing a new service and would like to use swagger-ui or similar with bidi, not sure how hard that would be.

dominicm 2017-03-15T17:30:25.247634Z

I think yada has a swagger generation. That must be built upon bidi.

dominicm 2017-03-15T17:30:29.249891Z

So defintiely possible.

dominicm 2017-03-15T17:31:32.281290Z

@kenbier https://github.com/juxt/yada/blob/master/doc/swagger.adoc I'd take a look at how yada does it, it is dependent on bidi

2017-03-15T17:50:43.830275Z

oh perfect, thanks @dominicm

2017-03-15T17:53:16.902493Z

hmm maybe ill just use yada anyway ๐Ÿ™‚. looks like i can add my existing ring middleware to yada, is that true @dominicm?

2017-03-15T17:54:16.931286Z

i donโ€™t plan to use any async features

dominicm 2017-03-15T17:56:37.000839Z

Um. You can. But depending on your middleware, it might not make sense

2017-03-15T18:27:34.870119Z

fair enough. iโ€™ll give it a shot anyway.

stijn 2017-03-15T19:04:41.904487Z

@dominicm let's say I have 2 pieces of state that might get refreshed: 1/ code from a git repo 2/ an edn file coming into the system through some other means (a config ala chef) but they need to be synchronized.

stijn 2017-03-15T19:05:01.913590Z

i.e. the version of the code needs some version of the config file

dominicm 2017-03-15T19:13:06.120741Z

@stijn Is the config immutable for a particular sha1 commit of the code?

stijn 2017-03-15T19:24:02.392687Z

no

stijn 2017-03-15T19:24:50.412533Z

there might be some secret that gets updated without the code being updated

stijn 2017-03-15T19:25:24.427079Z

i'm not using skip yet, but I was mapping out the pieces of state in one of our backend applications to see if it is feasible to use it

stijn 2017-03-15T19:27:50.487719Z

another question that I have is, how do you deal with code updates in practice? use the reloaded pattern? what about downtime in that case - rolling-update across instances? I can't figure out how that would 'easily' fit into the model of skip and the infrastructure you're running on

dominicm 2017-03-15T19:39:25.772788Z

@stijn I thought not, just wanted to confirm! In that case, I'd say that the stale of the config is whether either: the git repo is stale OR there's something stale according to the remote config?

dominicm 2017-03-15T19:40:37.802735Z

The downtime is extremely minimal when using reset. Particularly if you use the hibnerate stuff from weavejester. I also notice that mount only reloads components where the code has changed

stijn 2017-03-15T20:01:00.321316Z

need to think a bit more about the config changes and how to orchestrate that

dominicm 2017-03-15T20:02:01.347829Z

@stijn we have a lot of stale?s that mostly just check if other things are stale.

stijn 2017-03-15T20:03:25.384644Z

i see

stijn 2017-03-15T20:04:47.420293Z

on the downtime, we're starting to use weavejester's integrant and have to try out resume/suspend. the example even talks about holding requests in queue in the server while you swap the handler

stijn 2017-03-15T20:05:43.444425Z

how do you manage maven dependency changes? do you restart the jvm in that case?

dominicm 2017-03-15T20:13:20.634080Z

You can hotload dependencies. But I think generally if project.clj has changed, shutdown is appropriate, then let a process manager auto-restart you.

dominicm 2017-03-15T20:13:46.644701Z

I think you're taking this further than @malcolmsparks has actually done so in practice so far. A lot of the ideas were theoretical.

stijn 2017-03-15T20:18:57.774375Z

I know, but it's a very powerful idea I think

stijn 2017-03-15T20:19:33.789474Z

it's the exact opposite of what we're doing right now; everything in immutable containers, which has some advantages as well. but deployment speed is not one of them ๐Ÿ™‚