24:24 "I can scale my server until I hit a limit" if you multiply your server N times and put a simple proxy in front of it which redirects traffic "tenant => server" (with some kind of in-memory tenant table), then you can scale further. So far doesn't sound like rocket science to me tbh.
Great presentation 🎉. Go + SQLite is the best stack, we've built apps for our clients that serve 10s of thousands of customers that way with tiny server resources. PocketBase makes it really easy to use Go with Sqlite3 and get an admin UI + permission out of the box.
Slow down, speak with clearer diction and focus on a few things rather than mumbling your way through a lot of things. And don’t use the term “modern”. It just identifies the speaker as inexperienced.
Linus has a very good reason to increment the major version number. If he can't count with all his fingers, thumbs and toes the minor, it is time for a major change.
In other words, ugly, and messy hacks to get around golang's weak type system and lack of generics. You wouldn't see such a talk given for other proper languages.
That's not true. Generics wouldn't help with automatic JSON schema generation. To add to that: In what way does Java have JSON schema generation? Or maybe C++? Or aren't those "proper" languages too? Also, you should probably read up on what weak typing actually means. Judging by what you wrote, you have no idea.
I think so too. I understand why they're trying to avoid supporting generics as strongly as the C++ template system does, but there must be a sweet spot between that and no generic support at all.
@@mishasawangwan6652 No generics, no annotations, terrible error handling, weak modeling capabilities, arbitrary castings because of structural typing, etc.
@@zhamed9587 you must be one of them super hardcore, diehard VII haskell/ocaml/erlang monad type of ppl huh? anyway the next release of go (due any day now?) has an implementation of generics. whatever that means. but the bottom line is: you can build large scale, maintainable systems with it. what difference does it make if it isn’t “mathematically strict” or “doesn’t adhere to the property’s of category theory” or can’t “divide a black hole by zero” etc etc blah blah whatever insert whatever here? and as you can tell, i don’t know what i’m talking about so go easy on me, ok?
Was really interested in just the Sqlite portion, and am so glad you showed ignoring designating types for the field. You have likely saved me many future minutes! Thank you.
The correct spelling of the name is José Niño, if the uploader of the video wants to copy from here and correct it in the title, or just leave it here in my comment for people to find it.
Generics isn't something that should just be added for the hell of it, it has to be considered thoughtfully and in a way that works without breaking the core semantics of Go.
This video is a good learning experience; power of hindsight, hey. I'm thinking of using branca tokens with a payload containing just user's mongodb id. That way, even though it's sort of stateful, you don't have to worry about this deputy problem and counterfeit tokens, just read what ever "session" data or auth roles straight off the db. Everything hits the db anyway so it's not that big of an overhead. I mean it doesn't need a private blockchain so, it's got that going.
I know in my bones that the concept presented here about 1 process programming makes a ton of sense. I just don't get how I practically implement it, for say a simple REST API reading from a SQLite database.
It comes with time don't worry about it. This level of engineering happens when you start to understand that reliable software is a many-thousand-hour exercise not a late night and a red bull away - and believe me the feeling is miserable because simultaneously you'll understand all those cool apps you always wanted to build aren't actually worth the time.