Had fun this weekend working on a performance focussed proof of concept using Bunny in the #PHP#queue interop contracts. The first metrics are in using the #RabbitMQ cluster on my #Raspberrypi#Kubernetes home cluster. (Which isn't meant for high performance. Still pleased by these numbers.)
I came up with a thing in #fsharp today and I am unsure about it. I don't know if it's cute, useless, or useful; I cannot see far enough ahead to understand its implications.
type ErrExn = | Err of DomainError | Exn of System.Exception
This DU unifies domain errors (that are represented in a user-written DU) and exceptions.
I'd expect it to be in a function with a signature of 'a -> Result<'b, ErrExn>.
I don't know if this gives value over separate domain errors and exceptions.
@pblasucci@chethusk@greggyb
"Let it bubble up and crash" is also more in line with #kubernetes and modern #microservices 10 factor app principles.
It's not "crash" though, it is "shut down gracefully"
For a worker #process, graceful shutdown is achieved by returning the current job to the work #queue.
Like what can it do that Simple #Queue Service can't? I know it's push based and that has it's benefits, and obvs it has integrations with SMS/email that probably come in handy, but those seem like improvements you could just make to #SQS instead of having a whole separate system.
B) send the user an empty shell. have the client establish a #webSocket connection. build a #backend#queue of #API calls to make. process the queue retrying as necessary. insert results into a backend #database. Update the client with the socket connection.
Quite useful discussion on how to either push to a queue from Laravel and read jobs in another language, or push to a queue from another language and read jobs in Laravel.
I've been thinking of doing this to do some processing in Python, so it's nice to see a quick write up about this.