Initial separation has been done with the following architecture:
Dns Resolver - Discovers TXT records for a domain name (with the appropriate subdomains for policy and key records)
Domain Store - Stores domain information for invoking and identity domains and the associated keys
Domain Indexer - Uses the above components to maintain a list of domains used in signing/verification operations, runs background crawls to update domain records, stores private keys, calculates shared secrets, and is used by the Signatory for signing and verification operations.
Domain Indexer can be further separated with different components for private key management (see issue #31), background crawling, and data persistence.