Application Startup and Dataflow Architecture
April 5, 2023

An application’s deepest structure appears when startup code brings its objects onto the stage. Construction order, state ownership, dataflow, event handlers, and feedback paths define the system users actually run.

Brian Greenforest connects that architectural reading practice with an ADHD mind that processes many books and papers in parallel yet reads C++ main startup logic from beginning to end.

Read the Code That Creates the World

Event handlers explain local reactions. Startup code explains which components exist, who owns them, how they connect, and which stable relationships persist for the application’s lifetime.

Mapping each constructor and invocation on one linear sheet reveals the grand architecture. It turns a collection of callbacks into a system with history, state, and purpose.

Own the Feedback Loop

Data science also creates architecture. Mathematical models consume observations and human hypotheses, produce insights and recommendations, and feed those outputs back into people and institutions.

The data scientist chooses where to look and which world to model. Engineers should claim responsibility for that creative input, the resulting actuators, and the larger system their work changes.

Originally posted on LinkedIn

Brian Greenforest · (2023-04-05 17:02:24 UTC)

Open the original LinkedIn post · LinkedIn activity 7049426057304674304

LinkedIn status when archived: Edited · Visible to anyone on or off LinkedIn.

ADHD data processing is nonlinear. I physically read a thousand of books in parallel. Ten thousand of papers. Simultaneously. My space looks like a hoarder's. Nevertheless, when C++ main() is called, I always read the sequential instantiation code "cover-to-cover."You see, the code that establishes the main application architecture which remains stable for the run time is the most important code. It's easy to write and comprehend the source code of "event handlers." But the "bigger picture" is the fun one.When you start a new software development project, please, take your time, and read that code sequentionally. Put the order of main function invocations and objects being constructed on a linear sheet of paper, and map in what order what steps up onto the grand stage of the app.Thinking about applications, even server applications, like they are just event handlers without any state is silly and non-productive. Everything has a bigger picture, look deeper.Take data science, for example. A control theory in disguise, with Human input as its ultimate feed of Creativity. The Math heart of ML produces insights and recommendations, and eats the Creative input and Big Data of observations. The recommendations go cybernetically as actuators, transforming human minds on mass. The insights help your boss and you to bring a corrected Creativity feed. Hypothesis testing is that feed. You CHOOSE where to look at. You model the world, then you feed the constructed models back into that world. As a data scientist... You. Are. Responsible. You own your data science projects, not your boss, and not even your customers. P.S.: Things that have a beginning are not there to have an end. Temporal sequential processes establish structure, not behavior. Time is not a linear phenomenon, and never was. (edit: someone/something has deleted all new lines in the copy. Sorry for the inconvenience of reading!)