This project contains solutions for the Unravel Backend Developer Challenge.
The implementation is organized into dedicated packages within the source code.
The justification and detailed technical solutions for each task are described in
the Project Documentation sections below.
To build and run the project, you need the following:
- Oracle JDK 17 Downloads or higher.
- Maven for building and managing the project dependencies.
- Docker Compose required for MySql database.
The project uses the Maven Wrapper (mvnw or mvnw.cmd), so a global Maven installation is optional.
-
For Session Management, no specific runner was allocated. The solution was achieved purely through the inclusion of necessary library dependencies.
-
For running the second task, Memory Management, please use the MemoryLeakSimulator.java
-
To run a Producer-Consumer solution, please use the LogProcessingApp.java
-
For running the Deadlock solution, please use the DeadlockSimulator.java
-
To be able to observe logs of Database Connection Pooling solution, you need two things. The first is to run the application main method.
mvnw spring-boot:run
This will allow the scheduler to start a counter automatically trigger the
monitorPool()method within theDatabaseManagerclass.
The second is having MySql db up and running. To simplify this, I've added a docker-compose file to the root of the project which will automatically download an image and run the container with MySql. If you already have a MySql instance running, you can disablespring.docker.compose.enabled=falseproperty in the application.properties
