Fork me on GitHub
#juxt
<
2017-03-15
>
dominicm09:03:13

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

kenbier17:03:13

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.

dominicm17:03:25

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

dominicm17:03:29

So defintiely possible.

dominicm17:03:32

@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

kenbier17:03:43

oh perfect, thanks @dominicm

kenbier17:03:16

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

kenbier17:03:16

i don’t plan to use any async features

dominicm17:03:37

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

kenbier18:03:34

fair enough. i’ll give it a shot anyway.

stijn19:03:41

@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.

stijn19:03:01

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

dominicm19:03:06

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

stijn19:03:50

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

stijn19:03:24

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

stijn19:03:50

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

dominicm19:03:25

@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?

dominicm19:03:37

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

stijn20:03:00

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

dominicm20:03:01

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

stijn20:03:47

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

stijn20:03:43

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

dominicm20:03:20

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

dominicm20:03:46

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

stijn20:03:57

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

stijn20:03:33

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 🙂