Fork me on GitHub
#onyx
<
2017-07-26
>
lxsameer19:07:23

hey folks, Does onyx uses Dire ?

lucasbradstreet19:07:14

It used to, but we ditched it after a while because we didn’t want any performance overhead, since we care more about our users than our convenience.

michaeldrogalis19:07:17

Nope, took it out a few years ago

lxsameer19:07:57

so do you use any similar tool ? or similar approach ?

michaeldrogalis20:07:59

We don’t, no. Most of the code base is performance sensitive, so we’re handling errors pretty meticulously.

lxsameer20:07:39

@michaeldrogalis by meticulously you mean let it fail ?

lxsameer20:07:59

of course if there is no catch or something

michaeldrogalis20:07:05

@lxsameer No I mean we’re careful around how we handle every exception, we don’t use a blanket strategy like using Dire everywhere.

lxsameer20:07:03

@michaeldrogalis Aha, cool. I'm interested to know more on this subject, could you please refer me to a starting point in the source code ?

lucasbradstreet20:07:20

The code has gotten moderately hard to read over time, between building up a state machine with lifecycles and doing a lot of performance sensitive stuff, but I can point you to where we handle it in a second

lucasbradstreet20:07:41

you can see the handle-exception-fn which calls our pre-comp’d lifecycle/handle-exception code to decide what to do

lucasbradstreet20:07:38

task-lifecycle used to look more elegant. But it also used to be able to process thousands of segments a second, not millions 😉

lxsameer20:07:31

@lucasbradstreet thanks man, I'm sure that it's quiet good