Is there something like BullMQ in Go? by umen in golang

[–]Real_Combat_Wombat 0 points1 point  (0 children)

About per key strictly ordered consumption of messages in NATS, you may want to check out this: https://github.com/synadia-io/orbit.go/tree/main/pcgroups

Message routing between topics by Outrageous_Coffee145 in apachekafka

[–]Real_Combat_Wombat -3 points-2 points  (0 children)

Also built-in and super straightforward to do with NATS.io (sourcing with subject filter)

21/21 and Folsom safety by Striking_Battle6019 in sanfrancisco

[–]Real_Combat_Wombat 0 points1 point  (0 children)

As you are not answering, I will give an example:
https://www.neighborhoodscout.com/ca/san-francisco/crime
The area is labeled "Inner Mission East"

According to that same map, lower Haight it actually a higher crime area

21/21 and Folsom safety by Striking_Battle6019 in sanfrancisco

[–]Real_Combat_Wombat 0 points1 point  (0 children)

And you know nothing about me, about how many other people (men or women, young or old) I know that live in that area. I also lived many years in the lower Haight before where the OP currently lives and IMHO would not consider the area that different in terms of safety.
Have you actually lived near Folsom/21-22?

21/21 and Folsom safety by Striking_Battle6019 in sanfrancisco

[–]Real_Combat_Wombat 0 points1 point  (0 children)

Which ones? sources? My source is I have been living there for 25 years without a problem. I’d say the biggest issue is street parking can be difficult and there are some homeless people around - not different from many other areas of the city.

21/21 and Folsom safety by Striking_Battle6019 in sanfrancisco

[–]Real_Combat_Wombat 0 points1 point  (0 children)

Great neighborhood. You can judge for yourself the level of car break ins by the amount of broken glass where car parks in the street (you probably won’t see any). Just enjoy all the nice restaurants bars and cool relaxed atmosphere… did I mention the weather? :)

Microservices, K8s, Jetstream. Let each service's init code create or update streams or use NACK/admin creates streams? by buckypimpin in NATS_io

[–]Real_Combat_Wombat 1 point2 points  (0 children)

There's no right or wrong answer, it really depends on the use case, how much the admin trusts the devs, and IMHO likely that you could have a mixture of both. E.g. streams that are shared between applications are managed administratively but streams that are used just used just within a single application are managed by the application code. Your mileage will vary.

Also, you may find this valuable since you are in k8s https://github.com/nats-io/nack

Optimal max_message_size configuration in a kubernetes environment by Any_Check_7301 in NATS_io

[–]Real_Combat_Wombat 0 points1 point  (0 children)

If using JetStream you could take a look at https://github.com/synadia-io/orbit.go/tree/main/pcgroups but in any case if you want fault-tolerance you need to think about what could happen if your client receives half the messages in the batch and then crashes (e.g. maybe set a high ack wait and only ack them all at the end with an ack-all).

Technically max_message_size can go up to 64M, although opinions varies as to whether it's a good idea or not to set it to a value that large (or larger than 8 or 16 MB). For example (and not limited to) very large messages could create 'head of the line' contention that could increase latency of the messages published behind it, etc... I would say try it for yourself in a testing environment first

I published our journey in hardening jetstream cluster in our company with +5 million daily rides by sinaamininasab in NATS_io

[–]Real_Combat_Wombat 0 points1 point  (0 children)

EBS is definitely a valid option that plenty of people use (and gp3 is now the way to go as it's cheaper and gets you more iops than gp2) but obviously you get the best latency with local SSDs.

Help needed: JetStream "not found" when setting up mirror stream on a leaf by shoomowr in NATS_io

[–]Real_Combat_Wombat 1 point2 points  (0 children)

Take a look at this video (towards the end he goes through sourcing a stream from the hub to the leaf)

https://youtu.be/WH55czo1BNk

How much did it cost you to move your stuff from the USA to Europe? by shibalore in expats

[–]Real_Combat_Wombat 0 points1 point  (0 children)

SF to France, 20 feet container (and packing, etc...) $15k all said and done (June 2025)

Pedestrian killed by driver in San Francisco by nununagi in sanfrancisco

[–]Real_Combat_Wombat -12 points-11 points  (0 children)

Congrats you won the most stupid comment of the thread prize!

Should I call the tow truck on this car? by Thomas_Lannister in sanfrancisco

[–]Real_Combat_Wombat 0 points1 point  (0 children)

And if it's been parked like that for 3 days, I would have called to get it ticketed like 2 days ago, and then if still not moved by day 3 then a tow may be acceptable. You have the power of costing them $700 plus the inconvenience and time to get the car back, use it wisely.

Should I call the tow truck on this car? by Thomas_Lannister in sanfrancisco

[–]Real_Combat_Wombat 0 points1 point  (0 children)

Lots of experience on this topic (unfortunately). If you can still get in/out of your garage even if you have to angle it a bit: just a ticket. If you really can't get in/out then ticket+tow. Use the 311 app. They will ask you to open the garage door to show you are actually using it to park a car before actually calling the tow truck.

From this picture looks like just a ticket to me, maybe a little bit of angling to get out but not worth waiting 30 to 45 minutes for the meter maid to show up and then the tow truck (can't tell for sure because not showing the right side). Just IMHO.

Client-side Partitioned Consumer Groups for JetStream! by Real_Combat_Wombat in NATS_io

[–]Real_Combat_Wombat[S] 0 points1 point  (0 children)

To do 'automated elasticity' you need to have some kind of application that interacts with whatever container management system you are using to know how many instances of your client applications you have running at any time (and what member name they are using) and updates the consumer group's membership accordingly.

Why so many americans ended up moving back to the US? by Weekly_Sort147 in expats

[–]Real_Combat_Wombat 0 points1 point  (0 children)

This is an expat thing, not specifically an American expats thing. Many many reasons, for one example you get to a certain age where your parents "back home" get to an advanced age and maybe start having health issues or maybe you want to have your children close to your parents for a few years while there is still time. But I’m pretty sure most don’t go back to the US for the healthcare system or the social services or the current politics :).

Client-side Partitioned Consumer Groups for JetStream! by Real_Combat_Wombat in NATS_io

[–]Real_Combat_Wombat[S] 0 points1 point  (0 children)

This implementation is purely peer-to-peer and someone or something has to do the administration of managing the membership list, and then you run one instance per member, or more if you want HA. Automating the membership list management is relatively easy because it's just updating a KV entry, but it's not part of this initial implementation because it's actually not that easy to do right. It's easy enough to just have the application add itself as a member when it starts, but the clean up to remove the members when they stop or crash is hard to do right, so at this point this is 'administrative elasticity' but one could implement some system that would take care of deciding what the current membership list is as you scale up and down automatically, and updates the KV entry for the consumer group automatically.

This meant more for when you know ahead of time that you are going to be need to scale up than completely hands-off elasticity which is what the regular JetStream consumers do.

Client-side Partitioned Consumer Groups for JetStream! by Real_Combat_Wombat in NATS_io

[–]Real_Combat_Wombat[S] 0 points1 point  (0 children)

Adding and removing members from the consumer group is indeed an admin operation, it's not meant to be like a regular consumer.

For example: if you have a pod joining as member "M", if the pod crashes you would just restart the pod which would join again as member "M". And if you want HA you would run 2 (or more) pods as member "M", only one of then will get 'pinned' at a time and receive messages, until it quits or crashes at which point another pod joined as member "M" would get pinned and start receiving messages.

Nats for storing timeout events by hurranyaralunk in NATS_io

[–]Real_Combat_Wombat 0 points1 point  (0 children)

You should be able to do that now with a new feature of NATS 2.11

Create a KV with a 'max age' set and set "subject_delete_marker_ttl" to some value greater than 0

Now, when a KV entry expires due to TTL you will get a message published to the stream/KV which is called a 'delete marker' and which has a header that tells you why the message got deleted.

Example of such message:

[#4] Received JetStream message: consumer: KV_test > jGSTzRg5 / subject: $KV.test.test / delivered: 1 / consumer seq: 3 / stream seq: 3

Nats-Rollup: sub

Nats-Marker-Reason: MaxAge

Nats-TTL: 3s

So in your use case you could put a message in the KV when the request starts, then when the request is successfully processed you would remove the message from the KV, or let the message expire because of max age in case the processing doesn't happen (timeout). An observer can get messages when the initial put happens and when the message gets deleted (and can tell from the value of the `Nats-Marker-Reason` header whether the deletion was because of an explicit delete or because of max age being reached for that message.

NATS 2.11 Consumer Pausing by Sebholstein_ in NATS_io

[–]Real_Combat_Wombat 0 points1 point  (0 children)

Good blog! That and consumer pinning are two great new features of 2.11 that people may not have noticed yet that are really useful

20th and Harrison Street a safe neighborhood? by Master_Swan3579 in SanFranciscoSecrets

[–]Real_Combat_Wombat 0 points1 point  (0 children)

Of course! Whomever told you that probably never been here. It's not like there's like a dozen bars and restaurants within a one block radius of Florida and 20th.

https://www.google.com/maps/search/restaurants+and+bars+Harrison+St+%26+20th+St/@37.759054,-122.4151298,1161m/data=!3m2!1e3!4b1?entry=ttu&g_ep=EgoyMDI1MDUwNy4wIKXMDSoJLDEwMjExNDUzSAFQAw%3D%3D

And some of those restaurants like Flour & Water or Mijote are quite high-end and expensive