Enhanced MessagingService Limits

MessagingService does work in Studio.

1 Like

Now that’s great news.
Thanks for the great efforts!

@jjwu_play Has reliability been improved? Sometimes messages sent through the open cloud messaging API wouldn’t be received by servers even thought it responded with 200 status code. Can this be changed or could this be made to return a different status code in case it could not send the message to any topics. Thanks.

1 Like

The amount of subscriptions allowed always limited servers on the amount of cross server communication that could be done on the server when only 1 user was in game.

Having the default limit at 20 is huge and makes it possible to have separate topics for several server wide things with ease without having to put them all through a single or a few topics.

This all in general means a lot more cross server experimenting can be done and I like it, thanks Roblox.

1 Like

It’s still called out in the documentation that Delivery is best effort and not guaranteed, but we did try to improve the reliability as well. Have you experienced the issue recently (last 30 days)?

1 Like

As a reminder, you can now use Luau binary buffer type (Introducing Luau buffer type [Beta]) in MessagingService data.

It still has encoding overhead (35 + math.ceil(bytes / 3) * 4), but buffers up to 741 bytes should be possible.
Encoded length can be checked with HttpService:JSONEncode.
Buffers are compressed before encoding, so you might be able to fit more, but be careful as different data will have different compression ratio.

1 Like

The one singular aspect of this that makes many things limiting, the size of the messages (1 KB), is the one thing that didn’t change. Definitely a disappointing aspect.

Also still waiting on announcements about bug fixes that severely hinder everything I do, but alas, they never come, and the relevant bug report page remains cold and silent.

That is great, This is what i have been asking for

Is there any data for how reliable Messaging Service is? As I’m not entirely sold on using the system due to it possibly being unreliable.

2 Likes

Is there any way you guys can make sure servers have received the message before returning a 200 status code, and then return a ~500 if not? I already suggested this a while back and was told it was being considered.

It does? This is news to me. Was this a recent change?

Support in Studio has been there for a few years… note that the messages sent from Studio are isolated in a test channel so they won’t impact your game in production.

Regarding reliability, our internal metrics do show significant improvements. Be aware the messaging service does not work like traditional HTTP request/response, it’s very expensive to send a message and wait until it’s been successfully delivered to all subscribers. Imagine your experience has 10,000 servers that all subscribe to the same topic… That being said, we are still exploring opportunities to avoid such delivery failures.

3 Likes

Is it possible to share these metrics? How reliable is messaging service? What is the difference in reliability between 1k servers and 10k servers?

2 Likes

if only this had been done 3 years ago when i actually had a use for it…

When running in Studio, it errors. I’ve had to create custom code that detects the Studio context and skips hooking to Messaging service.

What errors did you get when running in Studio? make sure you enabled Studio Access to API Services (reference https://youtu.be/VHDLIY3XOno?t=580)

1 Like

It would be nice if the messages could be sent more frequently but with less data so if something needed to be synchronised across servers at almost Realtime speeds it could as long as it doesn’t require tons of data to do so thinking like a data sent/received per server/game limit instead of messages sent/received per server/game limit.

Oh cool, this should be very useful and add more usecases for this service

The thing is, it used to, even with access to API. It seemingly isn’t anymore, which is good. Now, how can I test it in Studio effectively?