1.”How do you handle NFRs?
Availability – Loose coupled services, Data centers, cluster, CAP, BASE
Performance- Caching, choosing right technology options based dynamic vs static data, JVM GC options, following coding best practices like object creation, using object pool, avoiding thread local, releasing listeners, DB connections. Design Patterns.
Scalability- Loose coupled services, Micro Services, Layered Approach, Asynchronous Approach, Read – cache, Write – Batch Update, choosing right technology options like Cassandra, oracle coherent DB, Memcache. Token based authentication. Sharding, Read / Write scalability approach
Maintainability-Modularity, Layered Architectures.
2.”What are the necessary action to be taken to meet provided SLA?
Scenario: Accessing web service from third party.”
Caching, Integration Approach (Loose coupled approach, asynchronzed approach), measuring by monitoring
- “how do you increase scalability/ read scalability? What things you consider in Design to make system highly available? He was not interested in knowing vertical, horizontal or partitioning. Same
Hint : Caching, Loose coupled service, Sharding, Read Write partitioning
- “Tell me about few instances when you had major performance bottleneck in application?
How problem was investigated?
What are the tools used?
What were the fixes made?”
Hint : Everyone will ask about non-functional but not quality questions? I find people mostly asking based on their clustering experience.
5.What are the various performance monitoring options you have for Java/JEE applications
6.SLA how do you maintain for performance
- setting GOAL, benchmark, monitoring and measuring, analyse, imple ..1. temporary soln
- Compare with benchmark