SQLite is embedded in the application process and commonly stores its database in an application-owned file. PostgreSQL is a separately running server reached through an explicit connection. Both support relational work, but their deployment, ownership and failure boundaries differ.
This course builds on relational design and Go packages/tests. You move an actual deterministic SQLite notes fixture into an owned local PostgreSQL cluster. Hosted tasks stay offline and test pure Go contracts; the downloadable lab performs the real database operations.
With an embedded database, the application owns file location, connection lifetime and filesystem access. With a server, it also needs an explicit destination, authentication/role, connection budget and server lifecycle owner. A transaction is still necessary in either architecture.
The exercise names those boundaries without opening a file or connection. The local launcher handles the additional work with a new fixture directory and private socket. No public PostgreSQL endpoint or hosted network capability is introduced.
package main
import ("fmt")
func main(){
fmt.Println("SQLite:","process + owned file")
fmt.Println("PostgreSQL:","application + connection + server")
}A local server process can stop independently of your application. A connection can fail while the database files remain healthy. Conversely a process-owned file still needs a recovery and concurrency policy. Moving to a server changes responsibilities; it does not automatically improve every workload.
Keep application data separate from course progress or personal databases. The launcher creates only its own source.sqlite and PostgreSQL cluster and removes them after a confirmed stop. It never opens the site’s learner-state database.
package main
import ("fmt")
func main(){
fmt.Println("same relational intent, different lifetime boundary")
}Implement the boundary description, then inspect the launcher’s explicit ownership choices. Next construct a connection URI that cannot silently fall back to another host.