I think both approaches have their benefits and should be chosen based on the specific needs of the application. Using client affinity on a load balancer with sticky sessions can be beneficial as it may lead to quicker response times; once a session starts, subsequent requests can be swiftly routed to the server managing the session, thus avoiding delays associated with database lookups. However, if the server fails, the session information will be lost unless it is saved on another server, and this method could lead to an uneven distribution of load. Conversely, storing sessions in a database guarantees that session data can be recovered by a backup server in the event of a server crash. Nevertheless, this approach might introduce some performance overhead due to the read and write operations required for each request to the database. Considering these factors, if the application experiences frequent access and involves substantial session data, I would prefer using a database for session persistence for enhanced durability and reliability. However, if immediate performance is crucial for the application, then session affinity on the load balancer might be the better choice.