The banking API that deliberately will not tell you things
Fineract exposes a restricted self-service namespace rather than the full API. What it omits is a design decision, and it shapes the whole client.
We use Google Analytics to see which pages help people. No ads, no profiles. Privacy Policy
70 posts
Fineract exposes a restricted self-service namespace rather than the full API. What it omits is a design decision, and it shapes the whole client.
A dependency module nobody included compiles cleanly and fails at runtime. Declaration and installation are separate acts and only one of them is checked.
A registry, a binding and a cleanup hook maintained by hand are three chances to forget. A processor already has what it needs to write all three.
Replacing a cached page is several row operations, and a reader arriving between them observes a state that never existed. Make the swap one transaction.
Starting in a platform source set means shared code never gets written. Default to commonMain and let the compiler decide what genuinely cannot live there.
The compiler verifies an expect declaration's shape on every platform and nothing verifies its meaning. The narrowest declaration is the only promise you can keep.
A cache and the writes against it drift apart in five distinct ways. Each ships separately, each looks reasonable, and all five look identical to a user.
A cold open and a deliberate refresh want different things from a cache. One read method forces the repository to guess what only the call site knows.
Semantic search on a phone is not a vector-database problem at user scale — it is an index-freshness problem, invisible until someone searches.
On-device inference has no per-call bill, and that hides six real costs — eligibility, size, battery, thermal, capability ceiling and operations.
Routing between a local and a hosted model needs a decision you can audit. Route before attempting, record the path on every result, and watch the proportion.
Reading offline is the easy half. The write path is where it breaks: stale cold starts, unresolved conflicts, unorchestrated retries and torn pages.