Caspex Corp
20+ Accenture Interview Questions and Answers
Q1. Suppose you are responsible for setting up a CICD pipeline to automate the build test and deployment process for your spring boot microservices. So how would you configure jenkins or git, GitLab's CICD pipeline...
read moreSetting up CICD pipeline for Spring Boot microservices using Jenkins/GitLab
Configure Jenkins/GitLab to listen for changes in the repository
Set up build steps to compile the code, run unit tests, and perform integration tests
Use Docker for containerization and Kubernetes for container orchestration
Deploy artifacts to Artifactory and promote to production environment
Automate the entire process with appropriate triggers and notifications
Q2. Suppose your task is to design an high available and scalable data storage solution for a mission critical application. So How would you choose between AWS and Dynamo DB based on the application requirement
Choose AWS for flexibility and customization, choose Dynamo DB for simplicity and scalability
Consider AWS if you need more flexibility and customization in your data storage solution
Choose Dynamo DB if you prioritize simplicity and scalability for your mission critical application
AWS offers a wide range of services and configurations for high availability and scalability, while Dynamo DB is a fully managed NoSQL database service that can automatically scale based on demand
If ...read more
Q3. Suppose the organization has a legacy system written in different programming language integrated with your java application. How would you approach the integration considering factors such as data exchange for...
read moreI would assess the legacy system's data exchange formats and communication protocols, then design a seamless integration plan.
Analyze the data exchange formats used by the legacy system and determine compatibility with Java application
Identify the communication protocols utilized by the legacy system and ensure they can be integrated with Java
Design a middleware layer or API to facilitate communication between the legacy system and Java application
Implement data mapping and t...read more
Q4. Suppose your task is optimizing a java application that handles a high calling of concurrent requests. So how would you design the concurrency model and what techniques would you employ to ensure thread safety...
read moreDesigning a concurrency model for a high calling java application to ensure thread safety and maximize throughput while minimizing deadlock risks.
Use a combination of thread pools and executor services to manage concurrent requests efficiently.
Implement synchronization mechanisms such as locks, semaphores, or atomic variables to ensure thread safety.
Utilize non-blocking algorithms and data structures to reduce contention and avoid deadlocks.
Consider using asynchronous program...read more
Q5. Suppose your microservice expose API that require authentication and authorization to access specific data. So how would you implement secure authentication and authorization using Auth or JWT token. So what me...
read moreImplement secure authentication and authorization using Auth or JWT token to prevent security vulnerabilities.
Use HTTPS to encrypt communication between client and server to prevent eavesdropping.
Implement strong password policies and use password hashing to securely store user credentials.
Use JWT tokens with short expiration times and refresh tokens to prevent token theft.
Implement role-based access control to ensure users only have access to authorized resources.
Regularly u...read more
Q6. Suppose you need to implement a reliable messaging system for communication between distributed components of your application. How could you design the messaging architecture using technologies like Kafka and...
read moreDesign a reliable messaging system using Kafka and RabbitMQ for communication between distributed components.
Use Kafka for high-throughput, low-latency messaging with strong durability guarantees.
Implement RabbitMQ for reliable message queuing and delivery.
Integrate Kafka for real-time event streaming and RabbitMQ for asynchronous communication.
Leverage Kafka Connect to easily connect Kafka with external systems and RabbitMQ plugins for enhanced functionality.
Q7. Suppose your microservice need to handle failures by cascading failures in a distributed environment So you have to implement the circuit breaker pattern using the spring boot to detect and recover from failure...
read moreImplementing circuit breaker pattern in Spring Boot to handle failures in a distributed environment
Use Spring Boot's resilience4j library to implement the circuit breaker pattern
Configure the circuit breaker to monitor the external service dependency and trip open when failures exceed a certain threshold
Handle the circuit breaker state transitions (OPEN, HALF_OPEN, CLOSED) appropriately in your code
Implement fallback mechanisms to gracefully handle failures when the circuit b...read more
Q8. What is meta space and how it is different from PermGen
Meta space is a memory space in Java 8 and later versions that replaces PermGen for storing class metadata.
Meta space is a part of the native memory and is used to store class metadata, such as class structures and method information.
Unlike PermGen, meta space is not part of the Java heap and is not subject to the same memory limits.
Meta space automatically resizes based on the application's demand, unlike PermGen which had a fixed size.
Meta space can be monitored and tuned u...read more
Q9. How does and Amazon S3 provides high availability and low latency
Amazon S3 provides high availability and low latency through data replication and global edge locations.
Amazon S3 replicates data across multiple availability zones within a region to ensure high availability.
Global edge locations cache frequently accessed data closer to users, reducing latency.
Amazon S3 uses a content delivery network (CDN) to deliver content quickly to users worldwide.
Q10. What do you understand by stopping and terminating an EC2 instance
Stopping an EC2 instance puts it into a stopped state, while terminating an EC2 instance permanently deletes it.
Stopping an EC2 instance preserves the data on the instance's EBS volumes
Terminating an EC2 instance deletes the instance and all associated data
Stopped instances can be started again, while terminated instances cannot be recovered
Stopping an instance does not incur charges, but terminating an instance does
Q11. Can we override or replace the embedded tomcat server in spring boot
Yes, we can override or replace the embedded tomcat server in Spring Boot.
You can override the embedded Tomcat server by excluding the Tomcat dependency in the pom.xml file and adding a different embedded server dependency like Jetty or Undertow.
You can also customize the embedded server configuration by creating a bean of type EmbeddedServletContainerCustomizer in a @Configuration class.
For example, to replace Tomcat with Jetty, exclude the Tomcat dependency and add the Jett...read more
Q12. What are recovery time objective and recovery point objective in AWS
Recovery Time Objective (RTO) and Recovery Point Objective (RPO) are key metrics in disaster recovery planning in AWS.
RTO is the maximum acceptable downtime for restoring services after a disaster.
RPO is the maximum acceptable data loss in case of a disaster.
RTO and RPO help in determining the appropriate backup and recovery strategies.
For example, if RTO is 4 hours and RPO is 1 hour, it means services should be restored within 4 hours with a maximum data loss of 1 hour.
Q13. Suppose your application experiences due to inefficient database queries and data access pattern. So analyze the database schema and query execution to identify performance borderline
Analyzing database schema and query execution to identify performance issues
Review database schema for normalization and indexing
Analyze query execution plans for inefficiencies
Consider optimizing data access patterns and query structure
Use database profiling tools to identify bottlenecks
Implement caching mechanisms for frequently accessed data
Q14. How to enable debugging log in the spring boot application
Enable debugging log in Spring Boot application
Add 'logging.level.root=DEBUG' in application.properties file
Use '@Slf4j' annotation in the Java class to enable logging
Set 'logging.level.org.springframework=DEBUG' for Spring framework debugging
Q15. What is the difference between Monolithic SOE and Microservices architecture
Monolithic SOE is a single large application while Microservices architecture breaks down the application into smaller, independent services.
Monolithic SOE is a single, self-contained application where all components are tightly coupled.
Microservices architecture breaks down the application into smaller, independent services that communicate through APIs.
Monolithic SOE is easier to develop and test but can be harder to scale and maintain.
Microservices architecture allows for ...read more
Q16. What is method referencing and where do we use it
Method referencing is a way to refer to methods without invoking them directly.
Used to simplify lambda expressions in Java
Commonly used in functional interfaces
Types of method referencing include static, instance, and constructor referencing
Q17. Default methods and when do we use it
Default methods in Java 8 allow interfaces to have method implementations.
Default methods were introduced in Java 8 to allow interfaces to have method implementations.
Default methods are used to provide a default implementation for a method in an interface.
Default methods are useful when adding new methods to existing interfaces without breaking the classes that already use them.
Default methods can be overridden by classes that implement the interface if needed.
An example of ...read more
Q18. Difference between request mapping and get mapping
Request mapping is a general annotation used for mapping web requests to handler methods, while Get mapping is a specific type of request mapping used for mapping HTTP GET requests.
Request mapping is a more general annotation that can be used for mapping various types of HTTP requests, while Get mapping specifically maps HTTP GET requests.
Get mapping is a shortcut for @RequestMapping(method = RequestMethod.GET), making it easier to specify that a method should handle GET requ...read more
Q19. Difference between findFirst and findAny
findFirst returns the first element in a stream, while findAny returns any element in a stream.
findFirst is deterministic and will always return the first element in a stream, while findAny is non-deterministic and can return any element.
findAny is useful for parallel processing as it can return any available element without the need to search for the first one.
findFirst is typically used when the order of elements matters, while findAny is used when any element can satisfy t...read more
Q20. explain the tools in project and workflow of project
Various tools are used in project and workflow of project to streamline processes and improve efficiency.
Tools for project management such as Jira, Trello, Asana
Tools for version control like Git, GitHub, Bitbucket
Tools for continuous integration and deployment such as Jenkins, Travis CI, CircleCI
Tools for monitoring and logging like CloudWatch, ELK stack, Prometheus
Tools for infrastructure as code such as Terraform, CloudFormation, Ansible
Q21. what is spark architecture
Spark architecture refers to the structure and components of Apache Spark, a distributed computing framework.
Spark architecture consists of a driver program, cluster manager, and worker nodes.
The driver program is responsible for maintaining the SparkContext and executing the user's application.
Cluster manager allocates resources and schedules tasks on worker nodes.
Worker nodes execute the tasks and store data in memory or disk.
Spark architecture supports various data process...read more
Q22. How will you build micro services
Micro services can be built using a modular approach, focusing on single responsibilities and communication through APIs.
Break down the application into smaller, independent services that focus on specific functionalities
Use lightweight communication protocols like HTTP or messaging queues for inter-service communication
Implement each micro service with its own database to ensure data isolation and scalability
Containerize each micro service using technologies like Docker for ...read more
Q23. sql subquery explain
A SQL subquery is a query nested within another query to retrieve data based on the results of the outer query.
A subquery can be used in SELECT, INSERT, UPDATE, or DELETE statements.
Subqueries can be correlated or non-correlated.
Example: SELECT * FROM table1 WHERE column1 = (SELECT column2 FROM table2 WHERE condition);
Q24. ci/ cd pipleline in azure
CI/CD pipeline in Azure refers to the automated process of continuously integrating code changes into a shared repository and deploying them to production.
Azure DevOps provides tools for setting up CI/CD pipelines such as Azure Pipelines
CI involves automatically building and testing code changes, while CD involves deploying code changes to production
Azure DevOps allows for defining custom workflows and triggers for CI/CD pipelines
Azure DevOps supports integration with various...read more
Q25. normalization in sql
Normalization in SQL is the process of organizing data in a database to reduce redundancy and improve data integrity.
Normalization involves breaking down a database into smaller, more manageable tables.
It helps in reducing data redundancy by storing data in a structured manner.
Normalization ensures data integrity by minimizing data anomalies.
There are different normal forms like 1NF, 2NF, 3NF, and BCNF that define the level of normalization.
Example: In a database for a school...read more
Q26. Concepts in advanced nodejs
Advanced concepts in Node.js include event loop, streams, clustering, worker threads, and async/await.
Event loop: Node.js uses a single-threaded event loop to handle asynchronous operations.
Streams: Node.js streams allow for efficient processing of data in chunks.
Clustering: Node.js clustering allows for scaling applications across multiple CPU cores.
Worker threads: Node.js supports worker threads for parallel processing of tasks.
Async/await: Async/await syntax simplifies han...read more
Interview Process at Accenture
Top Interview Questions from Similar Companies
Reviews
Interviews
Salaries
Users/Month