-
Notifications
You must be signed in to change notification settings - Fork 12
Architecture
V0ldek edited this page Apr 6, 2023
·
9 revisions
The rsonpath library has to be finely modular for at least three separate reasons. We need to be able to (not necessarily in order of priority):
- swap parts of the algorithm between generic portable versions and hyperoptimized architecture-specific implementations;
- swap classifier algorithms in-flight for best engine performance (we call this the State-driven Classifier Pipeline);
- manage the complexity of the solution, since it would otherwise drive anyone trying to grasp it insane.
If anything, the last point should be the one driving engineering decisions. Remember that Correctness is the core principle, and even the fastest algorithm is useless if it's written in such a complex way it's unmaintainable. Managing complexity is, after all, the primary objective of software engineering.
rsonpath wiki, curated by Mateusz Gienieczko (V0ldek) (mat@gienieczko.com)