Which software architecture and when ?

  • How to manage scalability and availability of individual micro services
  • In order to dynamically scale, how is the underlaying infrastructure layer support that ?
  • How to expose services as APIs at different layers both internally and to the public
  • How to integrate different services exposed with different protocols (eg. HTTPS and JMS and then with SOAP)
  • How to handle message flows and message delivery resilience
  • How to monitor the service calls which hops from service to service
  • How to manage deployments w/o affecting the service availability
  • How to manage upgrades and patch deployments
  • How to monitor the overall system health and statistics
  • How to debug and troubleshoot the applications
  • How to implement a common layer of shared services which most of the other micro services will consume and how to manage the vast inward traffic
  • If the customer business and/or the scope of the application is so small and have budget constraints go for a monolithic application, and why not ? of course its still possible and is the right decision.
  • If the customer says he has a plan to expand everything rapidly after 5 years, don’t build a complex system now for a business that you nor the customer has already not seen. Its worth build something simple to cater the current business requirements and build something advances later as the business expands and architecture/design the future system based on the then actual situation. Who knows how businesses and technology changes in 5 years. Sometimes you will have to convince this to customer.
  • If the customer business has decent amount of clients /client applications now or coming up in a short time period consider architecture the applications using SOA unless otherwise cannot be done with MSA.
  • Consider incorporating Message Oriented architectural aspects if the software application requires Quality of Services (QOS) attributes.
  • If the traffic is very high or the traffic pattern if very dynamic MSA can be considerable but it has to be done with the proper analysis of the implications and with the customer awareness is given too. It is important to make the customer awareness set correctly so that the customer will support and understand the technical complexity and challenges in MSA.
    Make sure there is a agile plan from the architecture itself to deliver the system step by step.

--

--

--

an enterprise architect, technology enthusiast, dog lover , music maniac, a husband & a father ! 🐶

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Easiest Way to Visualize Loop Progress in Python

Getting the user’s location — iOS #15

Enumerating the Google Cloud Platform (GCP)

Hacking with Swift — Challenge 11

Basic Player Animations — Dungeon Escape Game Dev

Move to Stage 2…ABC On How to Get Your HNG Task done for Stage 1 to Stage 2

How Salesforce integration with Samespace at Simplilearn helped our business grow?

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Anuradha Prasanna

Anuradha Prasanna

an enterprise architect, technology enthusiast, dog lover , music maniac, a husband & a father ! 🐶

More from Medium

Communication Best Practices — Giving and Receiving Feedback

Implementing the Loan Broker with Camunda 7

Feature Toggles for Spring Boot applications with IBM Cloud App Configuration

What is Version Control Software (VCS)…?