Eddie,
I agree with Ilja that the database layer is the number one thing to watch out for. Normally, I would agree not to optimize until the end. However, you can write yourself into a corner if the architecture doesn't support scalibility extremely well. (A
J2EE architecture helps you out here.)
Some notes from my experiences with developing financial software:
1) Carefully review the number of trips to the database. One query returning a million rows is better than a million queries returning one row.
2) Avoid returning unneeded data. If you need a sum of the data, let the database do it rather than returning all that data and adding in java.
3) Minimize the data crossing tiers. If you can do back-end processing in the data access (
JDBC or EJB) tier, pass less data to the front end.
4) Think about what you are doing with the data. If the user is going to see the first 20 records out of 1000, you don't need to get all that data in one shot.