To all those eager to hear about our pricing, I'm pleased to be able to share this with you all. As of today, the LiveCycle Collaboration Service (LCCS) is available for purchase on a "pay-per-use" model -- worldwide!

Dimension

Price

Description

Live Stream Bandwidth

$0.49 USD per GB

Up/down live stream bandwidth, such as real-time audio and video. P2P stream via RTMFP is excluded though LCCS will gracefully switch connection methods if a P2P connection cannot be established or maintained.

Push Messages

$0.10 USD per 1K

Push messages are data messages in to the service. Data messages out are excluded. Some examples of data messages include chat messages and shared cursors. Push messages assist in collaborative workflows between clients.

User Minutes

$0.01 USD per Hour

User minutes is the amount of time that a connection is maintained to the service. If there are 3 connections maintained over a 5 minute period, the total user minutes for that session is 15 minutes.

Note: Though multiple currencies are supported and your payment card will be charged in the appropriate currency, the developer portal interface and billing emails will be in English and USD only.

Will you offer a plan that is suitable for high usage clients. I plan to use the service for hours a day, with 30 - 100 concurrent users at a time. In that case the current pricing but not be that reasonable. It might be more affordable to go with a connect pro pricing plan. I think there should be an unlimited usage plan for example 100 concurrent users unlimited meetings or at least something similar.

I think the best way to try this out is to use the Room Console, available in the developer tools tab of the SDK Navigator. Log into a room, and check out the "Logs" tab. Run and user your application on the same room, and watch the graphs and message count being displayed there. Note that the bandwidth graph is only the bandwidth down for one client, so you'll want to multiply it by the number of users you may have logged in for the final result.

why is the live stream bandwidth showing when my application does not have any video or audio? I was just testing the app and under live stream bandwidth it says 0.003 GB ?

Also about the user per minute section it says $0.01 per hour per user

so if user one connected @ 8am and user two connected at @ 8:30am @ 8:59am will this account be billed $0.01 for each user or will it only bill the one who has been on for an hour ? I'm trying to understand how this will work for application where you have users going in and most may not even stay for an hour...

Bandwidth is bandwidth is bandwidth (and the term "live stream bandwidth" is confusing.

We count the size of the data sent and received (including data messages), so if for example you are transferring images as data messages they will count as bandwidth used.

User time is calculated as the total connection time of each user, so if you have one user connected for an hour and then another user joins for 30 minutes you will have 1h 30m of user time. Also, we bill for the total connection time for the month, so if you have users connecting to the rooms for only a few minutes at a time they will still contribute to your total connection time for the month and you will be billed for it.

Of course if you don't convert any application to "paid" you can still use the system for the equivalent of $15 of usage per month, so the best thing to understand how the pricing model work is to run some test application and check the usage.

Thanks for the reply. I did run one of the chat application i'm developing through the system and it will be nice to have list of actions that might count as push message. E.g I only tested the application connecting to the server and the application connecting to one collectionnode. But it says my push message is 254. So does this mean connecting to the server counts towards your push message count?. .. I didn't send any chat message. Just login and log out few times.

You will incur a little bit of messaging hit for joining the room and publishing your presence (UserManager pushes a message to others in the room). A list of messages incurred by the framework itself is a good idea - we'll look into getting that documented. In general, it should be a pretty tiny amount of your cost.

We still have a free offering available for development and non-commercial use. With the new quota system you get $15 worth of free usage a month and if you need more or you want to bring your application commercial you can upgrade your account and select which applications you want to pay for and the maximum montly payment / usage you are willing to incur.

Yes - your calculation is correct. The other pricing dimensions are additive though it should be inconsequential for your use case. For example in user minutes, you have 8 users who are connected for 2mins, which results in a total of 16 user minutes.

As for P2P, DBWelch is correct -- you can alleviate your bandwidth costs by taking advantage of P2P streaming. However, there is a logical limit (see this thread here - http://forums.adobe.com/thread/536673?tstart=30) to avoid taxing clients. We automatically switch from P2P to Hub-and-spoke so you can just always request P2P so when the number of connections is below the logical limit, you won't incur any bandwidth costs.

BinaryPublish publishes a binary "file" to our temporary local repository, so while you can upload a small video and share it (via download) for the duration of a session I don't think it's what you want to do in your use case.

NetGroup is one of the p2p features that will be available in FlashPlayer 10.1

LCCS does support p2p connections and p2p a/v streams and it will use the NetGroup feature for data sharing between peers (I think, I am not familiar with that part of the code, but in any case we will provide p2p data sharing when 10.1 will be available)

Thank you for the reply! Sorry for getting back to this rather late. Let me rephrase my question here.

I wrote an application on Stratus, which supports P2P data sharing among peers. It relies on NetConnection and NetStream, whose send() function is especially helpful. To connect to Stratus you just need to call NetConnection.connect(Stratus_address_+DEVELOPER_KEY). NetGroup, when released, will be very helpful too.

We are adding p2p data sharing to LCCS, that uses the same primitives you use to connect to Stratus and then establish p2p connections to peers (and we'll be using NetGroups to group peers)

So, yes, you'll be able to write p2p applications for data messaging that use the LCCS data messaging model. But you will not be able to reuse your low-level code you wrote for Stratus, since we don't expose the NetConnection interface.

The nice thing of using LCCS vs. Stratus is that your application can leverage both client-server and p2p configuration depending on the number of user connected and network conditions. Or, you can start with client-server configuration and then switch to p2p if you find out that your typical use case is, for example, a few users mostly on the same local network. Or start with p2p and later reconfigure for client-server if your typical use case is a large number of users, or users that normally are on networks that don't allow or perform poorly in a p2p configuration.

Sorry to bother you with another question Raff, when you say "start with p2p and later reconfigure for client-server if your typical use case is a large number of users,...", do you mean you will switch to hub-and-spoke when the number of peers in one room are high? I am under the impression that P2P works better when there are more peers.

1) Yes, but you can always assign another app to your FREE quota pool.

2) Correct. The idea is to let you keep your development separate from a live application. So, you can always point your application to the Default app or any other that you've specified as FREE during development. And, when you are ready to push it live, just point it back to the one you've specified.

a) If you are using p2p for audio/video, then you are not charged for that stream. You are charged only for the connection time.

b) Currently we don't have p2p for text chat. But in future when we provide that feature, you won't be charged for text chat for any number of users. However, for audio/video chat, it falls back to hub-spoke the moment its more than 3 people or someone doesn’t have player 10 or firewall.

Can you clarify this statement " First up, for P2P audio/video chat, as long as you're just doing 3 people or fewer in a room, and they all have permissive firewalls, you'll be fine."

In a previous thread where I asked about three man a/v chat I asked:

Is there a limit on the number of P2P streams allowed by the flash player? I've got three way video chat working and there's a message in my debug log that says: "The total stream limit for P2P streams have" and then it cuts off. I grepped the source and didn't find that warning/error message.

So I'm guessing it's about to tell me the number of streams have been reached? Beyond the fact that 3 upstream video chats is probably all most connections can handle, is this a hard limit in the player or a soft limit based on available bandwidth?

Thanks for the help.

-Eric

To which Hironmay later responded:

Hi,

If you are doing both audio and video for all three , It won't work. However, if you are doing only video then all three can share video.

So, the logic says the number of streams of any user multiplied by number of other users (except him) should not be greater than 3. So, if I am sharing both audio and video and there are two more people, then it becomes 4, which makes it fall back to hub-spoke.

Hope this helpsThanksHironmay Basu

To which you responed:

Yeah, in this case, for every user that's receiving your stream, you haveto stream separately to them. So if I'm videochatting with 3 folks, I'mpushing 3 streams - it's a lot for most uplinks to handle (many have theirhands full with just 1).

What we could consider doing is adding an API to StreamManager, such that

you could declare the stream limit and override how much pushing you think

your users can handle.

nigel

So does this mean you have removed this restriction or that there is a new API in StreamManager I need to look up and add to our code?