Yours Truly

0 Followers
0 Following
1 Posts
Self-taught software developer (he/him)

Hello. Appreciate your question. I think that this is a good use case for the Repository Pattern.

In your case, this might look something like this:

  • TicketRepository, ScheduleRepository and TimerRepository interfaces which have their functions like create(), read(), update(), delete(), complexQueryByManyParams() etc. All your domain code should expect and operate on these interfaces.
  • FirebaseTicketStore, FirebaseScheduleStore, FirebaseTimerStore classes which implement the respective interfaces. All your logic that relates to Firebase should be encapsulated here.
  • You can later safely do things like swap out a FirebaseTicketStore with a MysqlTicketStore

You can consult the Design Patterns / Gang of Four book for more details

2012 - Anders Hejlsberg discovers some mushrooms growing from the base of his bathtub. After consuming them, he has a revelation that C# needs more Javascript. He invents Typescript. Typescript is a relatively verbose, garbage collected, class based, statically typed, single dispatch, object oriented language with single implementation inheritance and multiple interface inheritance. Microsoft loudly heralds Typescript's novelty.
Extra fun fact for comment reading friends: This post is the origin of the meme "Monads are just monoids in the category of endofunctors. What's the problem?" Source
A monad is just a monoid in the category of endofunctors, what's the problem?

Who first said the following? A monad is just a monoid in the category of endofunctors, what's the problem? And on a less important note, is this true and if so could you give an explanation (

Stack Overflow

A Brief, Incomplete, and Mostly Wrong History of Programming Languages

https://dataterm.digital/post/48576

A Brief, Incomplete, and Mostly Wrong History of Programming Languages - DATATERM

An absolute classic. One of my favourite parts: >1987 - Larry Wall falls asleep and hits Larry Wall’s forehead on the keyboard. Upon waking Larry Wall decides that the string of characters on Larry Wall’s monitor isn’t random but an example program in a programming language that God wants His prophet, Larry Wall, to design. Perl is born.

Hear me out, but I believe that using Rust holds Lemmy back.

Writing Rust code is difficult, and fairly time consuming. It's difficult to get right, and as other commenters have noted, Lemmy code seems to do a lot of things for the "hype factor" (like Websockets). It's difficult to find enough devs as well.

The article about Discord switching to Go in the top comment is misleading in my opinion. They totally rearchitected their service while rewriting it, so it's an apples to oranges comparision.

Image Stacks and iPhone Racks - Building an Internet Scale Meme Search Engine

https://dataterm.digital/post/26359

Image Stacks and iPhone Racks - Building an Internet Scale Meme Search Engine - DATATERM

Caddy is great, I've been using it for all greenfield projects.

P. S. Have you checked out the Caddy API?

I've heard of SQL Island and SQL Police Department which appear to be in the same vein, but I haven't got any hands on experience with those two.
This is really nice! You might also enjoy: Select Star SQL and SQL Murder Mystery
Select Star SQL

I work on nginx cache modules for a CDN provider.

While websockets can be proxied, they're impractical to cache. There are no turn key solutions for this that I'm aware of, but an interesting approach might be to build something on top of NChan with some custom logic in ngx_lua.

I agree with you that web proxy cache's aren't the silver bullet solution. They need to be part of a more holistic approach, which should start with optimizing the database queries.

Nchan - flexible pubsub for the modern web