Fire-and-Forget: The unification of single-threaded, multi-threaded and asynchronous programming technology

Fire-and-Forget: The unification of single-threaded, multi-threaded and asynchronous programming technology

“Fire-and-Forget” is a guidance bullet with independent guidance capability. It does not need external support, it will automatically track and strike the target, and do not need to control after launching. The utility model has the advantages of improving the use efficiency between the missile and the launcher, and reducing the missile’s dependence on other systems to provide its own updated information, so that the launcher can attack the largest number of targets in the shortest time and improve the survival of the launcher. The development direction of guidance technology in the future is precisely the “Fire-and-Forget” precision guidance technology.

For the same reason, I think the development direction of concurrent and parallel programming technology is also “Fire-and-Forget”, so asynchronous is unnecessary, async / await is a backward and inevitably eliminated model. Change from focusing on “code and function development” to “data control, data flow management, data lifecycle management, data standardization system, process improvement (process reengineering), thread collaborative optimization, etc.”

The abolition of async / await is essentially “operations research”. When waiting, this thread should be over. For example, in a factory, it will not happen that one workshop squats at the door of another workshop to wait for raw materials. Each workshop only interacts with the warehouse. After the main thread (also the workshop) sends out order data, The production plan is generated by the warehouse, and data (messages) are sent to the relevant workshops for production until the task is completed. There is no waiting in the entire process, but the production plan is generated according to the order, with the warehouse as the center, and each workshop independently produces in parallel.

  • Product: Standardized data

  • Warehouse: data management, sending & receiving

    • Notify thread production data by order (production plan) or inventory level
    • Send the data to the thread, if the thread does not exist, create a thread.
    • Fire-and-Forget: Forget after sending the data.
  • Workshop: Thread

    • Except for input / output data. It is isolated from the outside world, Forget after the data is sent to the warehouse.
    • Passive production: Lean Production, JIT (Just In Time) Production, production by order (production plan), pursuit of zero inventory and quick response.
    • Active lazy production: When the data of the warehouse (cache) is lower than the minimum inventory level, the thread starts to produce data to fill the warehouse until the optimal inventory level is reached.

MyBlog: The Pure Function Pipeline Data Flow ---- the Great Unification Programming Theory

UPDATE 2020-05-31:

  • Warehouse: data management, sending & receiving, like: Enterprise Warehouse(DB) + MES (Manufacturing Execution System) = Database + DBMS.

    • MES can be used as a workshop, but it is integrated with the warehouse as a DBMS. The combination of the DBMS and the database is more reasonable and the performance is higher.
1 Like

This is strongly reminiscent of how Flink’s Stateful Functions operate

1 Like

I am happy to know that the Warehouse/Workshop Model also achieves the unification of the distributed architecture.

I have always been an amateur personal PC developer. I do n’t understand the knowledge of distributed, streaming, and Flink. Through article via your link, I get the following points:

  • Flink Stateful Functions is more like my previous article Everything is RMDB.

  • In the Warehouse/Workshop Model, There is strictly no interaction between each workshop, and the “Flink Stateful Functions” diagram seems to be interactive. From this perspective, Flink Stateful Functions only defines the warehouse, and does not strictly define the workshop. It is a state server, which is more similar to ring web server. My previous article: Ring is also a Warehouse/Workshop Model

  • In the Warehouse/Workshop Model, the vast majority of the workshops are pipeline-function (pure function) or long-pipeline-function consisting of serially connected pipes. If not, then the side effect is at the end of the series of pipeline, similar to that, consumables such as office supplies or lubricants are sent from the warehouse to the workshop and are consumed.

  • Finally, I think it would be better and simpler if Flink Stateful Functions adhered to the Warehouse/Workshop Model more strictly.

Springer: Unification of theories: A challenge for computing science

Unification of theories is the long-standing goal of the natural sciences; and modern physics offers a spectacular paradigm of its achievement. The structure of modern mathematics has also been determined by its great unifying theories — topology, algebra and the like. The same ideals and goals are shared by researchers and students of theoretical computing science.

Append 2020-06-02:

The true sign of intelligence is not knowledge but imagination (analogy).
      ---- Albert Einstein

Analogy is an application of algebraic thinking. Unlike the real world, in the virtual software world, it is very easy to map an old model to a new model and upgrade according to the standard specifications of the new model.

1 Like