parent
eb9107232c
commit
8437d77565
|
@ -1289,11 +1289,11 @@ Message queues receive, hold, and deliver messages. If an operation is too slow
|
||||||
|
|
||||||
The user is not blocked and the job is processed in the background. During this time, the client might optionally do a small amount of processing to make it seem like the task has completed. For example, if posting a tweet, the tweet could be instantly posted to your timeline, but it could take some time before your tweet is actually delivered to all of your followers.
|
The user is not blocked and the job is processed in the background. During this time, the client might optionally do a small amount of processing to make it seem like the task has completed. For example, if posting a tweet, the tweet could be instantly posted to your timeline, but it could take some time before your tweet is actually delivered to all of your followers.
|
||||||
|
|
||||||
**Redis** is useful as a simple message broker but messages can be lost.
|
**[Redis](https://redis.io/)** is useful as a simple message broker but messages can be lost.
|
||||||
|
|
||||||
**RabbitMQ** is popular but requires you to adapt to the 'AMQP' protocol and manage your own nodes.
|
**[RabbitMQ](https://www.rabbitmq.com/)** is popular but requires you to adapt to the 'AMQP' protocol and manage your own nodes.
|
||||||
|
|
||||||
**Amazon SQS**, is hosted but can have high latency and has the possibility of messages being delivered twice.
|
**[Amazon SQS](https://aws.amazon.com/sqs/)** is hosted but can have high latency and has the possibility of messages being delivered twice.
|
||||||
|
|
||||||
### Task queues
|
### Task queues
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ Data flow:
|
||||||
|
|
||||||
* The **Client** sends a request to the **Web Server**
|
* The **Client** sends a request to the **Web Server**
|
||||||
* The **Web Server** forwards the request to the **Accounts API** server
|
* The **Web Server** forwards the request to the **Accounts API** server
|
||||||
* The **Accounts API** server places a job on a **Queue** such as Amazon SQS or [RabbitMQ](https://www.rabbitmq.com/)
|
* The **Accounts API** server places a job on a **Queue** such as [Amazon SQS](https://aws.amazon.com/sqs/) or [RabbitMQ](https://www.rabbitmq.com/)
|
||||||
* Extracting transactions could take awhile, we'd probably want to do this [asynchronously with a queue](https://github.com/donnemartin/system-design-primer#asynchronism), although this introduces additional complexity
|
* Extracting transactions could take awhile, we'd probably want to do this [asynchronously with a queue](https://github.com/donnemartin/system-design-primer#asynchronism), although this introduces additional complexity
|
||||||
* The **Transaction Extraction Service** does the following:
|
* The **Transaction Extraction Service** does the following:
|
||||||
* Pulls from the **Queue** and extracts transactions for the given account from the financial institution, storing the results as raw log files in the **Object Store**
|
* Pulls from the **Queue** and extracts transactions for the given account from the financial institution, storing the results as raw log files in the **Object Store**
|
||||||
|
|
Loading…
Reference in New Issue