-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Design Notes
The intention to is allow clients to connect to a wide range of exchanges offering trade opportunities. This is not limited to Bitcoin, although the first exchange happens to use the BTC currency.
- MH denotes a "must have" requirement without which the library is useless.
- CH denotes a "could have" requirement without which the library is limited, but still workable for the majority of clients.
- Milestone denotes a collection of requirements that make up a release candidate.
- Data Transfer Object (DTO) for carrying state through the system
- Data Access Object (DAO) wraps DTOs to communicate with remote data
The entry point to the overall API Requires various options (authentication, token support etc) so consider SessionOptions parameter object. Has a transport type (asynchronous, synchronous, streaming). Has a lifecycle (start, stop). Runs in own thread pool. Supports multiple services from the exchange.
The entry point to an exchange service (e.g. listing prices against a particular index etc). Has a lifecycle (start, stop). Sends/receives messages to exchange/listeners.
The DTO for encoding a message to and from the exchange. Probably defined internally as a Map<String,String> for field and resource with appropriate getEntryAsXXX() methods to support different expected internal representations (e.g. JSON, double, text, etc). Treat as immutable. Could consider providing an Enum for standard key lookup.
- MH Support for Session against MtGox Bitcoin exchange
- MH Support for Service for price list (requires request Message and response Message support)
div
{
color: white;
background-color: 009900;
margin: 2px;
font-size: 25px;
}
span
{
color: black;
background-color: gray;
margin: 5px;
font-size: 25px;
}
</style>
<div> div tag </div>
<div> div tag </div>
<div> div tag </div>
<div> div tag </div>
<span>span-tag</span>
<span>span-tag</span>
<span>span-tag</span>
<span>span-tag</span>