Answer the question
In order to leave comments, you need to log in
What architecture to choose for a web auction?
Good day.
I have a new project coming up and I need to think about the architecture. Below I will state my opinion and I will be glad to hear the cons, or completely different implementations.
And so, I need to do something like an auction with a web interface (login, roles, notifications). All the logic for the auction is already ready and we will access it via the API (let's call it AUCTION API
), and the auctions themselves are stored in the CDB. AUCTION API
- open (almost), so my site will not be the only one that works with the auction database (therefore, access to the logic is only through the API). The site must have registration, distribution by roles (customer, participant, admin), personal account, search for auctions, and so on.
The site will have its own database, which will contain information about users, and basic information about auctions (full info - in the CDB).
How the auction will take place - the user (customer) creates an auction on the site. On the back-end, there is a request AUCTION API
to create an auction. Then other users can apply to participate in it (also a request to the API). The auction has several stages: registration of participants, questions, the auction itself, complaints, victory and others.
In addition, after some actions from other users, and API responses, you need to change the information on the front for all users (for example, if we are on the registration page of an auction participant, then other participants should be added to the page for everyone as they register, including the same auction, or when the auction moved to another stage)
I think that everything is complicated, but you can understand) Let's move on to architecture, and what I have drawn. As a
back-end plan to use Django Rest Framwork
++ PostgreSQl
. ElasticSearch
For the front - React/Vue
. But for communication to AUCTION API
, I plan to use Dramatiq
(since requests can be processed for about 2 seconds), and for changes on the front (after responses from the API or other time-based tasks) - Django channels
.
Since the project can be very large (relatively), and this is the first task for me in terms of coming up with an architecture, I have a few questions for you:
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question