Hi,
I was wondering if it would be a good idea to model a software app's performance using Haskell. The idea is a little abstract in my mind right now. I'll try and illustrate it with an example - Let's say, I want to model a web app - to, model it, I could think of the following entities -

1. One or more clients and as many connections (essentially bandwidth of each connection)
2. A Load balancer ( and bandwidths to the webservers)
3. Bunch of webservers (and bandwidths to the database server)
4. A database server

Using the model, I could generate performance characteristics and figure out if database is the bottleneck or not ... if so, what level of  sharding would be useful etc

Is there already a wheel I am trying to re-invent? Has anyone attempted this?

Regards,
kashyap