I think that is everything I can think of. If anyone has any questions or recommendations on how to make this clearer please let me know.
Thank you in advance,
Jayson
As far as Erlang web frameworks go, you're basically gonna have Chicago Boss (MVC), Nitrogen (event driven), and Zotonic (CMS with some event driven stuff).
You can also develop a little "closer to the metal" using yaws, cowboy, mochiweb, webmachine, or the new fandangled hybrid mochicow.
Both Nitrogen and Boss use simple_bridge to facilitate whichever underlying erlang server you'd want to use, so you can tap into the various streaming capacities of the underlying server of your choice.
As I'm familiar with Nitrogen moreso than the others, I can at least address how it can handle your requirements:
The multiserver (multi domain?) one is interesting. Nitrogen supports session sharing across a cluster, however it's default identification is with a cookie, so that's worth considering with regard to multiple domains. I can imagine a custom session handler combined with a custom security handler solving the session sharing problem. I may put together a single sign on POC just to satisfy my own curiosity.
In place upgrade with a hot swappable rollback sounds more like something you'd want to do by using multiple nodes and a reverse proxy like nginx.
As for mssql connectivity goes, nitrogen is db agnostic (provides no direct facilities for db integration), but using the erlang drivers for databases is no problem at all. The easiest method of accessing mssql from erlang might be odbc.
With those caveats mentioned, Nitrogen can handle the others just fine. I'm sure Boss and Zotonic would do just as well. Using Chicago Boss would likely require a custom BossDB adapter for mssql.
The big difference, however, will be in how you prefer to develop. Spend a few hours tinkering with each and see which development model you prefer.
--
Jesse Gumm
Owner, Sigma Star Systems
414.940.4866 || sigma-star.com || @jessegumm