achat

1.0.0 • Public • Published

chat

A technology showcase.

Why?

This repo is designed as a showcase for how to build apps that scale.

We have built chat example apps a couple of times before and the response has been good,
this time our mission is to operate within a very tight set of constraints:

  1. No Servers
  2. Progressive Enhancement (Works when JavaScript is OFF!)
  3. Precisely Predictable (Linear) Performance

What?

Chat. Probably the most scalable implementation you will see.

How?

Lambda

S3

We use S3 to render our initial page and host all our static content. https://aws.amazon.com/s3/

API Gateway

API Gateway routes the requests we make from the front-end through to the Lambda function that will process it. https://aws.amazon.com/api-gateway/

Lambda

https://aws.amazon.com/lambda/

DynamoDB

https://aws.amazon.com/dynamodb/

Cognito

IOT

WebRTC?

Over 50% of browsers (Firefox & Chrome) which means we can cut-out paying for IOT messages for the people who are using good browsers.

http://caniuse.com/#feat=rtcpeerconnection

This also means when we use Electron

How much ($£€) ?

How much does all of this cost...?

Let's break down the cost in the order of the Tech Stack.

S3

https://aws.amazon.com/s3/pricing/

API Gateway

https://aws.amazon.com/api-gateway/pricing/

What is a read/write capacity unit? http://aws.amazon.com/dynamodb/faqs/#What_is_a_readwrite_capacity_unit

Lambda

https://aws.amazon.com/lambda/pricing/

DynamoDB

https://aws.amazon.com/dynamodb/pricing/

Cognito

Amazon Cognito costs $0.15 for each 10,000 sync operations and $0.15 per GB of sync store per month.

https://aws.amazon.com/cognito/pricing/

IOT

$5 per million messages.

A message is a 512-byte block of data processed by AWS IoT – either published to or delivered by the Service. For example, a 900-byte payload is billed as two messages.

https://aws.amazon.com/iot/pricing/

Background Reading

Learning by Doing

Discussion

We considered using S3 as our primary data store, but soon realized its not that "simple"... see: Why does S3 still not support Appending? https://news.ycombinator.com/item?id=10746969

Package Sidebar

Install

npm i achat

Weekly Downloads

1

Version

1.0.0

License

GPL-2.0

Last publish

Collaborators

  • nelsonic