30+ Technologies You Need to Know to Build Scalable Systems: Using Microsoft Based Technologies (Preferably)
One of the beauties of information technology world is it is continuously evolving and getting better everyday in almost lightning speed. Technologies are originally developed to make peoples life easy, which is also true for developers. Creating a web experience that captures and stores data is a matter for few minutes (in some cases few seconds) to build now a days, which required possibly few days to weeks on the early days of web development technologies.
While the better and better technologies are getting available for building robust applications easy, functional and scalability requirements are getting more complex day by day, due to the increased demand of different kind of usage and information.
Here I’ve tried to summarize a list of top technologies that can be used to build scalable systems efficiently, probably with weeks of efforts, which could be taking months to years few years back considering traditional systems. Few fundamental or basic considerations, such as programming/scripting languages, operating system choices, additional tooling etc have been intentionally ignored to make the list simple.
Although other combinations of technologies from other providers can be considered depending on different technical and business context basis, the technologies as listed here are mostly in Microsoft stack, with the productivity consideration of uniform interoperability across the technologies.
Here goes the list with additional details:
Type | Purpose | Use Case | Technology |
Client Side | Client Framework | AngularJS | |
- | Type System | TypeScript | |
- | UI Framework | Bootstrap | |
Backend | Server Side MVC Framework | ASP.NET MVC | |
- | Server Side API Framework | ASP.NET Web API | |
- | Relational Data Access Framework | Assets, liabilities, income, expense (query) | Entity Framework |
- | Cloud Access Framework | Cloud storage access, logging etc | Azure SDK |
- | Concurrency Framework | .NET Task API | |
- | Telemetry Event Ingestion | User activity log (accept) | Azure Event Hub |
- | Enterprise Search | Product search | Azure Search |
- | Prefix based Search | Product search (with prefix) | <still not available, any suggestion?> |
- | Item Recommendation | Product recommendation | Azure ML |
- | Server to Client Notification | Sending monthly summary report | Azure Notification Hub |
- | Web Socket | Sending monthly summary report | SignalIR |
· | Background Processing (Large) | User activity log processing | Azure Worker Role |
- | Background Processing (Medium/Light) | Sending monthly summary report | Azure Web Job |
- | Async Messaging (1:1) | Azure Queue Storage | |
- | Async Messaging (1:N) | Azure Service Bus | |
- | Server Deployment Environment | Azure Web Role | |
Storage | Log Data (i.e. User Log) | User activity log (write) | Cassandra |
- | Analytics | User activity analytics (analyze) | Cassandra |
- | Map Reduce | User activity analytics (advanced) | Azure HD Insight |
- | Reporting | Daily operational report | Sql Server Reporting Service |
- | Binary content | User profile picture, logo | Azure Blob Storage |
- | CDN Cache | User profile picture, logo (cached) | Azure CDN |
- | In Memory Cache | User session data | Azure Redis Cache |
- | Shopping Cart Data | Shopping cart | Azure Table Storage |
- | Catalog Data | Product catalog | Azure DocumentDB |
- | Graph Data | Social network | Neo4J |
- | Financial Data | Assets, liabilities, income, expense | Sql (Azure) Database |
ALM | ALM | VS Online | |
- | IDE | Visual Studio |
Happy coding!