@acdlite @dw60010009 If you want to test functional behavior, wouldn't it be better use test containers for databases etc. Doing it this way makes your tests more robust and isolated. Using real databases, make tests less reliable due to dependent components.
@mjovanovictech@ProgressiveCod2 Each client needs to maintain its own BFF layer. This BFF layer acts as intermediate component between the actual client like UI dashboard and the Service.
@mjovanovictech@ProgressiveCod2 If you design APIs to cater to specific needs of 1 client then it'll be hard to adapt for other clients in the future. BFF helps solve this problem by allowing each client to assemble data as they need it, rather than forcing the service to handle multiple client requirements.
@FranckPachot You're referring to Phantom Read phenomenon. Sql RR doesn't prevent it. To avoid phantom reads, you've to use much higher isolation level.
@ProgressiveCod2 You cannot perform read operation from any random replica because each replica may have different replication lag. Clients may perceive read operations as inconsistent.
@vlad_mihalcea Assume each txn consists of two queries, a select followed by an update. if concurrent txns acquire a shared lock during the select query then none of them would be able to execute the subsequent update due to the inability to obtain a write lock. This is an issue. Isn't?
@alexxubyte I haven't encountered any project that has been implemented with DDD. Have you? I find the idea of domain isolation powerful since it's extended to micro services also. Patterns like sidecar, I see it as extension of DDD. Moving resiliency aspects away from domain and app logic.
Ah, yes, eventual consistency gone wrong. I did a bank trx that didn't immediately appear in my account history. Maybe I accidentally didn't complete it? I wasn't sure. So I refreshed, but still no record. So I did the trx again. Sure as shit, now both appear as completed.