When we cannot catch a panic — will the application terminate anyway?
Golang
What does naming in RPC style mean? In our case, gRPC and REST — how do they differ?
Are you still working at Magnit? Why did you decide to enter the market?
What happened in the pipeline after inbox? How was data written to the database?
What is in the sync package?
Have you ever explicitly set the isolation level in your code?
// Question 5. What will be displayed on the screen func main() { ch := make(chan int, 5) for i := 1; i <= 5; i++ { ch <- i } for true { fmt.Println(<-ch) } }
Are you still working at Magnit? Why did you decide to enter the market?
Have you created historical tables, for example, to store the change history of user attributes?
// Question 3. What will be displayed on the screen package main import "fmt" import "math" func main() { i := int32(math.Pow(2, 64)) - 1 fmt.Println(i) }
How did you optimize queries from 10-20 minutes to 5-7? What reports took so long?
Were there many such invalid messages?
Have you used triggers in practice?
There is an application with multiple endpoints, dependencies (DB, cache, libraries). Where should recover be specified so that the application does not crash in case of panic?
Tell me about yourself, what have you been doing, what have you been engaged in?
What happened in the first synchronization channel? Is it some data model that was enriched somewhere?
// Question 2. What will be displayed on the screen package main import "fmt" func main() { { defer fmt.Println(1) } defer fmt.Println(2) }
What was done with the messages after manual processing? What options were available?
Tell me about validation: what validation options are there, and what happens if the message fails validation?
Are you familiar with the Saga pattern?