5 things I would like to know before developing the exchange

"Tell me - and I will forget, show me - and I will remember, let me do it - and I will understand."


When I started developing the exchange engine with my cat, it was this quote from Confucius that sounded in my head. We were a united and motivated team. Interest and readiness to overcome difficulties arising on the way to MVP - this is how our condition could be described. Challenges and discoveries that arose during the development process definitely made their own adjustments and were worth the time spent. About the main of them, as well as the results of the experiment, I want to tell today.


For the impatient, here is a link to a demo version of the exchange that you can run on your machines.


I ask everyone else under cat.


The biggest challenge of this project was limited resources. Surely, if this restriction were not so acute, the list would look different. Perhaps for some people this list will be commonplace, but any question can be perceived differently: the gap between “heard about the problem”, “understood it” and “realized” is quite large.


The list of what I realized when developing the project:


  1. Bringing a project to MVP is harder than starting it.
    When you work on a project alone, especially only in your free time, it is very easy to deviate from the planned time frame. In development, we had to take a half-year pause due to the increased main workload and family affairs.


    The project was divided into 2 time periods: March-April 2019 and November-December 2019. In November, I was not sure that I would bring the project to MVP. But since all the internal interfaces, the storage system, the processing of orders were ready, and it remained only to create user interfaces, I decided to continue.


    As a result, I realized that it’s better not to suspend the project, as the original motivation is lost and attention is switched. To continue the work, I had to make some efforts to find the time to complete the project.


  2. .
    . , API .
    — , .


    // , , “”, . .


  3. , .

    . , , , , , .
    , . Timescale time_bucket ; Tarantool , , ; Rustler, … , — , , , , .
    - . , . .


    , , , .


  4. ,
    . — , . .
    — . , , , .
    , . , , , .


  5. ( ).
    , , . , , . . , , , .


    ? ...





2 :


  • ;
  • .

( ). .


… , Erlang/OTP. Erlang OTP . , , , OTP, . , 4 . 200 .


. Erlang Python. , . , . , .


, , , .


- Erlang, GC . NIF Rust.


, , Erlang . Rust/C/C++ ( ).


. Vue + Js. , Vue + Typescript. .


, . ! ! :)


:


Source: https://habr.com/ru/post/undefined/


All Articles