Showing posts with label MicroServices. Show all posts
Showing posts with label MicroServices. Show all posts

Tuesday, 11 August 2026

2026 Interview Preparations


====================

Java 8 vs Java 11 vs Java 21

====================

Java 8 : Lamda expressions, Functional Interfaces, Default and Static interfaces, Streams, Completable features and New Date and time functions are introduced


Java 11 :  Local Variable syntax changes in Lamda,  Enhanced Streams and Collections concepts and HttpClient is introducted 

Java 17 : 

Java 21 : Virtual Threads, Pattern Matching in switch, Record Patterns and SequencedCollection are introduced 


Java 25 : Collection Performance, Stream preformance, Concurrent & Runtime Performance and I/O Security Enhancements. 


Immutable Class : A class which is not having setters and who's instance cannot be change after they are created.

  • Declaring a final class 
  • Make all fields are private 
  • Make all fields are final.
  • Donot provide the setters. 
Advantages of Immutable class : 
  • Thread safety
  • Security & Consistency 
  • Reliable Hash keys

Multithreading : 

CompletableFuture vs Future : 

  • supplyAsync() — starting async tasks the right way (Java 8 CompletableFuture supplyAsync example) 
  • thenApply() & thenAccept() — transforming and consuming results (Multiple chained Futures cannot combined together using Future) 
  • thenCombine() — combining two futures into one (Multiple futures cannot combined together)
  • exceptionally() — exception handling in CompletableFuture (Poor exception handling in Future)
  • Chaining of futures vs combining futures — when to use each

Executor Service : 

Java supports Thread, Runnable, Callable and ExecutorService. In production, prefer managed executors instead of creating raw threads per task. In Java 21, virtual threads are a strong option for high-concurrency blocking I/O workloads.

Virtual Threads : 

Its a light weight threads which are managed by the JVM rather than OS. 
Its java 21 and Springboot 3.2+ onwards.
Platform Threads : Traditional OS Managed threads
Virtual Threads : JVM managed threads.

Virtual threads are useful at Async Processing by replacing the traditional thread pool executors with virtual thread exectuors in SpringBoot Async configuration. 

Advantages : 
  • Higher Concurrency 
  • Lower Memory Overhead
  • Better scalability for I/O bound operations 
Use Cases : 
  • API Gateway Parllel processing of larger datasets. 
  • Real time Systems like Chat applicatoins, Live Updates, Trackers 
  • I/O Bound operations like Database calls, HTTP requests, file Operations 
  • Handles millions of Concurrent Request. 


Microservices Design Patterns : 

Circuit Breaker DP : 

Circuit breaker implemented using Resillance4J and it has 3 components : CLOSED, OPEN and HALF-OPEN.

CLOSED : When failure rate threshold is below 

OPEN : When failture rate threshold is above 

HALF-OPEN : After wait durtaion it will go to HALF-OPEN

Circuit breaker uses two types of sliding windows to store and aggregate the outcome of calls. 

1. Count based sliding window

2. Time-based sliding window

Bulk Head Pattern : 2 types of SemaphoreBulkhead and FixedThreadPoolBulkhead 

Rate Limtter Design Pattern : Rate limiting is an imperative technique to prepare your API for scale and establish high availability and reliability of your service.

Retry Design Pattern : Just like the CircuitBreaker module, this module provides an in-memory RetryRegistry which you can use to manage (create and retrieve) Retry instances.

Saga Design Pattern : 

Event Driven Approach Design Pattern : 

  • Kafka based event driven approach

Database Design Pattern : 

Indentity Design Pattern : Security Identity Management (verifying who is making requests) and Domain Data Identity (how data entities maintain their identifiers across service boundaries)


Feign Client vs Rest Client : 

The primary difference is that Feign Client is declarative (you write an interface and let the framework generate the HTTP code), while a Rest Client is programmatic/fluent (you manually write the steps to build and execute the request).

Microservice vs Monolithic : 

A monolithic architecture consolidates all software components into a single program, whereas a microservices architecture divides the application into separate, self-contained services.

When to Use Microservices

Microservices are advantageous for certain types of projects:

  • Complex Systems

  • Scalability

  • Technology Diversification

  • Autonomous Teams: For bigger organizations with multiple teams that need to work independently.

Challenges while using Microservices : 
  • Database per service
  • Data inconsistency 
  • Integrate Testing
How Microservies communicate each other :
  • Synchronous
  • Asynchronous
  • Restful api's
  • Event Based communication
  • Database per service
  • API-Gateway

How would you decompose a monolithic application into microservices?

  • Identify Domains
  • Service Boundaries
  • Data Segrigation
  • Decouple services

Kafka Based Interview Questions :

Kafka consumer vs Consumer Group : 

  • Kafka consumer reads the data from the topic
  • Consumer group is a set of consumers work together and reads one or more topics.
OffSet : 
  • Offset is a unique sequential identifier record with in a partition.
  • Kafka tracks the offset per partition, per consumer group. So each group can consumes its own position.
How does kafka handles data retention : 
  • Retention can be time based, once it reaches to limit old message will be discarded.
  • Retention limit will be provided while creating the kafka clusters.
How Kafka ensure the data consistency : 
  • Replication : Each partition is replicated across the mulitple brokers 
  • Acknowlegements : Producers can wait for leaders only
  • Atomic, orders writes to a partition
  • Idempotent producers to prevent duplicate writes on retry.
KRaft :
  • To manage the metadata management kafka introduced the KRaft by removing the dependency on Apache ZooKeeper.
How to fix the lag issues in Kafka : 
  • Increase the Partition count 
  • Add more consumers instances : 
  • Ensure 1:1 Ratio : Align the no of active consumers with no of topic partitions.


Streams

Parllel Stream vs Stream : 
Streams : 
  • Run's single thread and results are predictable
  • Sequential
  • Low overheaded
                
Parllel Streams : 
  • Run's on multi threaded and results are unpredictable.
  • Parllel
  • High Overheaded due to thread management.

Map vs Flat Map : 

Map : 
  • One to one mapping 
  • To use basic data transformation

FlatMap : 
  • One to Many (zero)mapping
  • To handling collection of collections 
Tweleve-Factor App Concepts in java : 
  1. CodeBase
  2. Dependencies
  3. Configuration 
  4. Backing services 
  5. Build, Release, Run
  6. Processes
  7. Port Binding
  8. Concurrency 
  9. Disposability
  10. Dev/Prod Parity 
  11. Logs
  12. Admin Process

AWS Interview Questions : 

What is Cloud Computing : 
Cloud computing provides on-demand access to IT resources like compute, storage, and databases over the internet.

3 Types of Cloud Computing : 

  1. SAAS (Software as a service) : Aws email service etc services by AWS.
  2. PAAS (Platform as a service) : Elastic Beanstalk, Heroko.
  3. IAAS (Infrastructure as a service) : EC2 instance, S3 Storage, VPC.

EC2 Instance : Elasic Cloud Computing
  • Scalable virtual servers called instances in AWS
  • EC2 instances are used to host websites 
  • Run batch job process to acheive scalability

S3 Storage : 

  • Simple Storage Service 
  • Stores the objects in secure way
IAM : 
  • Identity Access Management
  • Helps you to securely access to AWS services 
  • IAM allows us to manage users & Roles.
RDS : 
  • Relational Database Service
  • To Manage the database service
VPC : 
  • Virtual Private Network
  • To create a virtual network in AWS.
AWS Cloud Watch : 
  • Uses for monitoring purposes
  • Metrics, Alarms, Logs, Events 
AWS Lamda : 
  • Server less Compute service
ELB : Elastic Load Balancer
EBS : Elasic Bean Stalk

Blue Green Deployment : 
  • Blue means current version deployment
  • Green means new version deployment
ECS : Elastic Container System 
  • Replacement to kubernetes, this simplifier to run EC2 Instances.
AWS Code Build : Compile the code, run tests, produce deployable artificats 
AWS Code Deploy : Deploy into AWS Environment
AWS Code Pipeline : Automate the deployment process using CICD workflow.

Amazon ECS : Deploying the Docker based applications into ECS Containers. 
AWS Secrets : Maintain the sensitive information into secret manager service.

Migrating the Old Application into New Applicaiton in AWS : 
  • Must follow the 7 Rs Framework 
  1. Rehost
  2. Replatform
  3. Repurchase
  4. Refactor
  5. Retire
  6. Retain
  7. Relocate 
  • Used EC2 and RDS to migrate also important.

DataStructures : 

  • Array
  • String
  • Linked List
  • Queue
  • Stack
  • Tree 
  • Graph
  • Hashing

SpringBoot ::

Spring Boot Scopes:: 
  • Singleton
  • Prototype
  • Request
  • Session
  • Application 
  • Websocket
Exceptino Handling : 

CustomException :: 

A custom exception is a class created by the developer to represent a specific error in the application.


Examples: Invalid account number, Insufficient balance, Payment failed, Flight not found

Serilization vs De-Serialization ::


HashMap Internally working technique :: 


When we will do the HashCode and Equals() : 

when ever both the string object values are same then we will use hashcode and equals().


What is a functional interface? 

 A functional interface has exactly one abstract method and can be used as the target of a lambda or method reference.

why are Streams usually faster than loops for large data?

Streams use internal optimizations like: Stream Pipeline

• Lazy ovaluation

• Mothod chaining 

•Built-in parallel proconcing

Syncrnonization :: 

Bad practise of synchronization : synchronizing on the boxed type Integer:

private int count = 0;

private final Integer intLock = count;  // the solution for synchronization on the boxed primitive is to create a new instance. private final Integer intLock = new Integer(count);

public void boxedPrimitiveBadPractice() { 

    synchronized (intLock) {

        count++;

        // ... 

    } 

}


Why does HashMap allow one null key and multiple null values ? 

HashMap is docignod to handle null gracofully. It treats null key's hashCode as O and stores it in bucket O. Multiple null values are allowed because values are not used in hashing or key comparison.





Monday, 12 February 2018

MicroServices


What is a Microservice?

MicroServices is an Services oriented architecture which reduces the time and development criticality.

What are the benefits of Microservices architecture?

  • Better fault isolation; if one microservice fails, the others will continue to work. 
  • Code for different services can be written in different languages. 
  • Easy integration and automatic deployment; using open-source continuous integration tools such as Jenkins, etc. 
  • The microservice architecture enables continuous delivery. 
What is the role of architect in Microservices architecture?
  1. Planner : 
  2. Technologies : 
  3. Tools : 
  4. Customization : 
What is the advantage of Microservices architecture over Service Oriented Architecture (SOA)?
Service Oriented Architecture is a software architecture where distinct components of the application provide services to other components via a communications protocol over a network.

1. Microservices, in a way, are the next step in the evolution of Service Oriented Architectures.

2. Building multiple services that are part of the same Service-Oriented Architecture

3. SOA development can be slow due to use of things like communication protocols SOAP, middleware and lack of principles but

On the other hand, Microservices are agnostic to most of these things. You can use any technology stack, any hardware/middleware, any protocol etc. as long as you follow the principles of Microservices.

Is it a good idea to provide a Tailored Service Template for Microservices development in an organization?
There are many organizations that provide tailored templates for Microservices. Eg. Dropwizard, Karyon etc. You can use these templates to make faster development of services in your organization.

Also remember that template code should not promote shared code. This can lead to tight coupling between Microservices.

What are the disadvantages of using Shared libraries approach to decompose a monolith application? 


What are the characteristics of a Good Microservice?

  1. Single Responsibility
  2. Private Data
  3. Monitored 
  4. Clustering 
What is Bounded Context?

Bounded Context is a central pattern in Domain-Driven Design. It is the focus of DDD's strategic design section which is all about dealing with large models and teams. DDD deals with large models by dividing them into different Bounded Contexts and being explicit about their interrelationships.

What are the points to remember during integration of Microservices?

I. Technology Agnostic APIs:
II. Breaking Changes:
III. Implementation Hiding:
IV. Simple to use:

Is it a good idea for Microservices to share a common database?

What is the preferred type of communication between Microservices? Synchronous or Asynchronous? 


In synchronous communication, a Microservice can provide instant response about success or failure. In real-time systems, synchronous service is very useful. In Asynchronous communication, a service has to react based on the response received in future.

Synchronous systems are also known as request/response based. Asynchronous systems are event-based.

Synchronous Microservices are not loosely coupled.

What is the difference between Orchestration and Choreography in Microservices architecture?
Service orchestration represents a single centralized executable business process
Service choreography is a global description of the participating services, which is defined by exchange of messages, rules of interaction and agreements between two or more endpoints.

What are the issues in using REST over HTTP for Microservices?

Due to JSON or plain text in response, performance of REST over HTTP is better than SOAP. But it is not as good as plain binary communication.

There is an overhead of HTTP in each request for communication.

HTTP is not well suited for low-latency communications.

Can we create Microservices as State Machines?

What is Reactive Extensions?

Reactive Extensions is a design approach in which we collect results by calling multiple services and then compile a combined response. It is also known as Rx.

What is DRY?

What is Semantic Versioning?

Is it a good idea to build a Microservice or buy a commercial off the shelf software?


Why do we break the Monolith software into Microservices?


What is Continuous Integration?


What is Continuous Delivery?


What is Ubiquitous language?


What is the benefit of Single Service per Host model in Microservices?


What are different types of Tests for Microservices?


What is Mike Cohn’s Test Pyramid?


What is the difference between Mock or Stub for Microservice tests?


How can we eradicate non-determinism in tests?


What is a Consumer Driven Contract (CDC)?


What is PACT?


How can we separate Deployment from Release of Microservices?


What is Canary Releasing?


What is the difference between Mean Time to Repair (MTTR) and Mean Time between failures (MTBF)?


How can we do cross-functional testing?


What is a good tool for monitoring multiple services at a time?


What is Semantic Monitoring?


Why do we use Correlation IDs in Microservices architecture?


What is the difference between Authentication and Authorization?


How does HTTPS authentication works in Microservices?


What are Client certificates?


Why some big companies use API keys for providing access to public APIs?


What is Confused Deputy Problem in security context?


How can we secure Data at Rest in an organization?


What are the different points to consider for security in Microservices architecture?


What is Conway’s law?


What are the important Cross-Functional Requirements to consider during the design of a Microservice?


What is a Circuit Breaker pattern in the context of Microservice?


What is Bulkhead design pattern?


What is Idempotency of a Microservice operation?


How can you scale a Database?


What is Command Query Responsibility Segregation (CQRS) design pattern?


How will you implement Caching in Microservice?


What is CAP theorem?


How will you implement Service Discovery in Microservices architecture?


What is a good tool for documenting the Microservices?


In which scenarios, implementing Microservices architecture is not a good idea?


What are the major principles of Microservices?

Omniroute step by step setup

 Omniroute step by step setup Step 1 : Install node js and omniroute using below command.  npm install -g omniroute Step 2 : Start the ser...