03-10-2023, 08:38 PM
Cycle 4, stage 3, day 10:
Yesterday, I have started thinking about designing a feature that would power cycle the trading session with the exchange.
The idea is good as it adds another level of safety net in case something goes wrong. It would theoritically allow the system to return in a sane state once problems are detected.
OTOH, I had a small voice telling me that it was not worth the effort to implement this for a once every 5 years occurence. Finally, it did strike me that my idea was addressing the symptom and not the cause and I have finally realized what did cause the mess that the system did experience.
It was coming from a core component. A component that is among the very first that I wrote when I started the project. It works fine when there are no errors but for some input, it can corrupt the system state.
Fixing this has been a very unpleasant experience because it is quite a complex element having interactions with several other components and because it has been a while since I created it, I had rediscover how it works... I have documented its design this time to make revisiting this component easier the next time the need arise.
I am now pretty much done with this task. I believe that now the problem is gone and this whole episode did give me the opportunity to improve that component...
This whole task did take the whole day and I have not done anything else... but I think that this is a really good thing to have work on and tomorrow, I'll be in a better position knowing that I can move forward on a more solid foundation.
Yesterday, I have started thinking about designing a feature that would power cycle the trading session with the exchange.
The idea is good as it adds another level of safety net in case something goes wrong. It would theoritically allow the system to return in a sane state once problems are detected.
OTOH, I had a small voice telling me that it was not worth the effort to implement this for a once every 5 years occurence. Finally, it did strike me that my idea was addressing the symptom and not the cause and I have finally realized what did cause the mess that the system did experience.
It was coming from a core component. A component that is among the very first that I wrote when I started the project. It works fine when there are no errors but for some input, it can corrupt the system state.
Fixing this has been a very unpleasant experience because it is quite a complex element having interactions with several other components and because it has been a while since I created it, I had rediscover how it works... I have documented its design this time to make revisiting this component easier the next time the need arise.
I am now pretty much done with this task. I believe that now the problem is gone and this whole episode did give me the opportunity to improve that component...
This whole task did take the whole day and I have not done anything else... but I think that this is a really good thing to have work on and tomorrow, I'll be in a better position knowing that I can move forward on a more solid foundation.