github.com/badrootd/nibiru-cometbft@v0.37.5-0.20240307173500-2a75559eee9b/docs/architecture/adr-003-abci-app-rpc.md (about)

     1  # ADR 3: Must an ABCI-app have an RPC server?
     2  
     3  ## Context
     4  
     5  ABCI-server could expose its own RPC-server and act as a proxy to Tendermint.
     6  
     7  The idea was for the Tendermint RPC to just be a transparent proxy to the app.
     8  Clients need to talk to Tendermint for proofs, unless we burden all app devs
     9  with exposing Tendermint proof stuff. Also seems less complex to lock down one
    10  server than two, but granted it makes querying a bit more kludgy since it needs
    11  to be passed as a `Query`. Also, **having a very standard rpc interface means
    12  the light-client can work with all apps and handle proofs**. The only
    13  app-specific logic is decoding the binary data to a more readable form (eg.
    14  json). This is a huge advantage for code-reuse and standardization.
    15  
    16  ## Decision
    17  
    18  We dont expose an RPC server on any of our ABCI-apps.
    19  
    20  ## Status
    21  
    22  Implemented
    23  
    24  ## Consequences
    25  
    26  ### Positive
    27  
    28  - Unified interface for all apps
    29  
    30  ### Negative
    31  
    32  - `Query` interface
    33  
    34  ### Neutral