Hello, dear applicant!
This task is designed to test your true Java development skills, so treat
it like a project. Complete it honestly and give it your best shot. Good luck!
Write an application that accepts a REST request of the form
POST api/v1/wallet
{
valletId: UUID,
operationType: DEPOSIT or WITHDRAW,
amount: 1000
}
then execute the logic to change the account in the database
It is also possible to obtain the wallet balance.
GET api/v1/wallets/{WALLET_UUID}
стек:
java 8-17
Spring 3
Postgresql
Migrations for the database must be written using liquibase.
Please pay special attention to the challenges associated with operating in a competitive
environment (1000 RPS per wallet). No request should remain unprocessed (50X error).
Please ensure compliance with the response format for evidently incorrect requests, such as
when a wallet does not exist, when the JSON is invalid, or when there are insufficient funds.
The application must be launched within a Docker container, as should the database. The
entire system should be initiated using Docker Compose.
Provide the ability to configure various application and database settings without rebuilding
containers.
Endpoints must be covered by tests.
Upload the solved task to GitHub, provide a link.
All issues arising on the task should be solved independently, at their own discretion.