Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

We are proposing to develop a modular and performant command processing component in parallel to the currently available one in Fineract and gradually migrate REST API controllers/resource classes, command handlers and where necessary business logic services. These changes will improve the developer experience (speed) significantly by (re-)introducing proper Class types where we currently use Strings as a common denominator to process various command payloads. Having proper type information is a requirement to delegate all JSON related de-/serialization to the Jackson framework and ultimately get rid of all handcrafted JSON parsing boilerplate  code (ca. 20% of the overall code base). With that we'll regain error checking at compile time (vs. tedious bug hunting at runtime, because of e.g. a simple refactoring of a command attribute). We are expecting visible performance gains by using Jackson and having a simpler command processing pipeline that has configurable performance levels (sync, async, non-blocking).

Status  

Under Discussion, ProposedDevelopment

Who is Involved   

  • Aleksandar Vidakovic (proposal owner, lead developer)
  • Victor Romero (reviewer)
  • Adam Saghy (reviewer)

...