A few short questions about the project:
I have a few short answers!
We're using 0MQ for IPC (communication between client subsystems, like mining software or wallet software, and the daemon). RPC is still available via good ol' JSON RPC API. However, instead of having some calls only available via the daemon's RPC interface and some only available via the wallet interface we make all of them available via an RPC-capable wallet, or a subset available via an RPC stub, both of which communicate with the daemon via 0MQ.
2) How is ongoing development financed ?
I have a slide on this in
my Bitcoinference talk, here you go:
The forum funding system is newer, so it's only just started to become useful, but I expect that will be the main finance driver in future.
3) What processes are used to define the design goals and prioritize them ?
The core team are stewards of the project, and so the bulk of those decisions were "made" by the core team, but born out of discussions here, on IRC, on Reddit, on the Monero Forum, etc. This is roughly the model going forward, in that the project is driven by something akin to
Apache's lazy consensus model. Community members can pitch ideas on the forum, existing or new contributors can pledge to complete an idea (setting milestones and costs), and then the community raises funds against that idea. That entire process doesn't require any "guidance" from the core team, although we will say something if we think it is a waste of effort or whatever.
4) Should a need arise to change the POW algo because, for example, someone introduces a CryptoNight FPGA or ASIC device, what process would the monero community and/or the development team use to pick a new algorithm and schedule its introduction ?
Someone would pitch replacements as ideas, and consensus would typically emerge from the discussions on the relevant ideas threads. An idea to implement WafflePoW (not an actual thing) is useless unless there's someone willing to do the work. At the same time, a suggestion to switch to X13 would be laughed away, even if there were someone willing to do the work. Once an idea is workable, is generally agreed upon, and has an implementer, it can move to being funded. Once implementation starts it would typically be too late for someone else to suddenly decide they've got a better idea, unless the community really thinks it's worth halting the one to switch to the other.
5) Are there estimated dates for the completion of these goals ?
Without knowing who will complete them, what other ones will come up, if there will be funding for them, it's hard to say:)