So we have data with over 10,000 features in a very small area of less than 50 acres or so and we are getting pretty slow performance of several seconds when the extent is changed via panning and zoom in/out on the client. We are publishing these as dynamic layers using ArcGIS Server 10.2 and displaying in a ArcGIS JS web app. Is there something we can do to improve performance and not show all features at once? Somehow intelligently dissolve the data so the UI isn't tied up when the extent changes on the client. Let me know if I need to explain this any better.
if possible, my recommendation would be to work with your FeatureLayer in selection only mode and display the ArcGISDynamicMapServiceLayer instead (as in this example)
I've never used this feature myself, so I can't give details, but you might want to try the point clustering feature:
This allows you to display several point features as a single feature (symbolized to denote the number of features that were grouped) when zoomed out, but switch back to displaying individual features when zoomed in closer.
Maybe you could try use sdegroup command i.e. merge features as described here. You could use merged features layer only at zoom levels that are slow to display i.e. huge number of features is fetched.