Skip to content

Latest commit

 

History

History
340 lines (314 loc) · 25.4 KB

system_design_links_vol2.md

File metadata and controls

340 lines (314 loc) · 25.4 KB

Reference Materials for System Design Interview - An Insider's Guide (Volume 2) book (https://amzn.to/34G2vmC)

Chapter 1. Proximity Service

[1] Yelp. https://www.yelp.com/.
[2] Map tiles by Stamen Design. http://maps.stamen.com/.
[3] OpenStreetMap. https://www.openstreetmap.org.
[4] GDPR. https://en.wikipedia.org/wiki/General_Data_Protection_Regulation.
[5] CCPA. https://en.wikipedia.org/wiki/California_Consumer_Privacy_Act.
[6] Pagination in the REST API. https://developer.atlassian.com/server/confluence/pagination-in-the-rest-api/.
[7] Google places API. https://developers.google.com/maps/documentation/places/web-service/search.
[8] Yelp business endpoints. https://www.yelp.com/developers/documentation/v3/business_search.
[9] Regions and Zones. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html.
[10] Redis GEOHASH. https://redis.io/commands/GEOHASH.
[11] POSTGIS. https://postgis.net/.
[12] Cartesian tiers. http://www.nsshutdown.com/projects/lucene/whitepaper/locallucene_v2.html.
[13] R-tree. https://en.wikipedia.org/wiki/R-tree.
[14] Global map in a Geographic Coordinate Reference System. https://bit.ly/3DsjAwg.
[15] Base32. https://en.wikipedia.org/wiki/Base32.
[16] Geohash grid aggregation. https://bit.ly/3kKl4e6.
[17] Geohash. https://www.movable-type.co.uk/scripts/geohash.html.
[18] Quadtree. https://en.wikipedia.org/wiki/Quadtree.
[19] How many leaves has a quadtree. https://stackoverflow.com/questions/35976444/how-many-leaves-has-a-quadtree.
[20] Blue green deployment. https://martinfowler.com/bliki/BlueGreenDeployment.html.
[21] Improved Location Caching with Quadtrees. https://engblog.yext.com/post/geolocation-caching.
[22] S2. https://s2geometry.io/.
[23] Hilbert curve. https://en.wikipedia.org/wiki/Hilbert_curve.
[24] Hilbert mapping. http://bit-player.org/extras/hilbert/hilbert-mapping.html.
[25] Geo-fence. https://en.wikipedia.org/wiki/Geo-fence.
[26] Region cover. https://s2.sidewalklabs.com/regioncoverer/.
[27] Bing map. https://bit.ly/30ytSfG.
[28] MongoDB. https://docs.mongodb.com/manual/tutorial/build-a-2d-index/.
[29] Geospatial Indexing: The 10 Million QPS Redis Architecture Powering Lyft. https://www.youtube.com/watch?v=cSFWlF96Sds&t=2155s.
[30] Geo Shape Type. https://www.elastic.co/guide/en/elasticsearch/reference/1.6/mapping-geo-shape-type.html.
[31] Geosharded Recommendations Part 1: Sharding Approach. https://medium.com/tinder-engineering/geosharded-recommendations-part-1-sharding-approach-d5d54e0ec77a.
[32] Get the last known location. https://developer.android.com/training/location/retrieve-current#Challenges.

Chapter 2. Nearby Friends

[1] Facebook Launches “Nearby Friends”. https://techcrunch.com/2014/04/17/facebook-nearby-friends/.
[2] Redis Pub/Sub. https://redis.io/topics/pubsub.
[3] Redis Pub/Sub under the hood. https://making.pusher.com/redis-pubsub-under-the-hood/.
[4] etcd. https://etcd.io/.
[5] ZooKeeper. https://zookeeper.apache.org/.
[6] Consistent hashingones. https://www.toptal.com/big-data/consistent-hashing.
[7] Erlang. https://www.erlang.org/.
[8] Elixir. https://elixir-lang.org/.
[9] A brief introduction to BEAM. https://www.erlang.org/blog/a-brief-beam-primer/.
[10] OTP. https://www.erlang.org/doc/design_principles/des_princ.html.

Chapter 3. Google Maps

[1] Google Maps. https://developers.google.com/maps?hl=en_US.
[2] Google Maps Platform. https://cloud.google.com/maps-platform/.
[3] Prototyping a Smoother Map. https://medium.com/google-design/google-maps-cb0326d165f5.
[4] Mercator projection. https://en.wikipedia.org/wiki/Mercator_projection.
[5] Peirce quincuncial projection. https://en.wikipedia.org/wiki/Peirce_quincuncial_projection.
[6] Gall–Peters projection. https://en.wikipedia.org/wiki/Gall–Peters_projection.
[7] Winkel tripel projection. https://en.wikipedia.org/wiki/Winkel_tripel_projection.
[8] Address geocoding. https://en.wikipedia.org/wiki/Address_geocoding.
[9] Geohashing. https://kousiknath.medium.com/system-design-design-a-geo-spatial-index-for-real-time-location-search-10968fe62b9c.
[10] HTTP keep-alive. https://en.wikipedia.org/wiki/HTTP_persistent_connection.
[11] Directions API. https://developers.google.com/maps/documentation/directions/start?hl=en_US.
[12] Adjacency list. https://en.wikipedia.org/wiki/Adjacency_list.
[13] CAP theorem. https://en.wikipedia.org/wiki/CAP_theorem.
[14] Routing Tiles. https://valhalla.readthedocs.io/en/latest/mjolnir/why_tiles/.
[15] ETAs with GNNs. https://deepmind.com/blog/article/traffic-prediction-with-advanced-graph-neural-networks.
[16] Google Maps 101: How AI helps predict traffic and determine routes. https://blog.google/products/maps/google-maps-101-how-ai-helps-predict-traffic-and-determine-routes/.

Chapter 4. Distributed Message Queue

[1] Queue Length Limit. https://www.rabbitmq.com/maxlength.html.
[2] ApacheZooKeeper-Wikipedia.https://en.wikipedia.org/wiki/Apache_ZooKeeper.
[3] etcd. https://etcd.io/.
[4] MySQL. https://www.mysql.com/.
[5] Comparison of disk and memory performance. https://deliveryimages.acm.org/10.1145/1570000/1563874/jacobs3.jpg.
[6] Push vs. pull. https://kafka.apache.org/documentation/#design_pull.
[7] Kafka 2.0 Documentation. https://kafka.apache.org/20/documentation.html#consumerconfigs.
[8] Kafka No Longer Requires ZooKeeper. https://towardsdatascience.com/kafka-no-longer-requires-zookeeper-ebfbf3862104.
[9] Martin Kleppmann. Replication. In Designing Data-Intensive Applications, pages 151–197. O’Reilly Media, 2017.
[10] ISR in Apache Kafka. https://www.cloudkarafka.com/blog/what-does-in-sync-in-apache-kafka-really-mean.html.
[11] Global map in a geographic Coordinate Reference System. https://cwiki.apache.org/confluence/display/KAFKA/KIP-392%3A+Allow+consumers+to+fetch+from+closest+replica.
[12] Hands-free Kafka Replication. https://www.confluent.io/blog/hands-free-kafka-replication-a-lesson-in-operational-simplicity/.
[13] Kafka high watermark. https://rongxinblog.wordpress.com/2016/07/29/kafka-high-watermark/.
[14] Kafka mirroring. https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=27846330.
[15] Message filtering in RocketMQdtree. https://partners-intl.aliyun.com/help/doc-detail/29543.htm.
[16] Scheduled messages and delayed messages in Apache RocketMQ. https://partners-intl.aliyun.com/help/doc-detail/43349.htm.
[17] Hashed and hierarchical timing wheels. http://www.cs.columbia.edu/~nahum/w6998/papers/sosp87-timing-wheels.pdf.
[18] Advanced Message Queuing Protocol. https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol.
[19] Kafka protocol guide. https://kafka.apache.org/protocol.
[20] HDFS. https://hadoop.apache.org/docs/r1.2.1/hdfs_design.html.

Chapter 5. Metrics Monitoring

[1] Datadog. https://www.datadoghq.com/.
[2] Splunk. https://www.splunk.com/.
[3] PagerDuty. https://www.pagerduty.com/.
[4] Elastic stack. https://www.elastic.co/elastic-stack.
[5] Dapper, a Large-Scale Distributed Systems Tracing Infrastructure. https://research.google/pubs/pub36356/.
[6] Distributed Systems Tracing with Zipkin. https://blog.twitter.com/engineering/en_us/a/2012/distributed-systems-tracing-with-zipkin.html.
[7] Prometheus. https://prometheus.io/docs/introduction/overview/.
[8] OpenTSDB - A Distributed, Scalable Monitoring System. http://opentsdb.net/.
[9] Data model. :https://prometheus.io/docs/concepts/data_model/.
[10] MySQL. https://www.mysql.com/.
[11] Schema design for time-series data | Cloud Bigtable Documentation. https://cloud.google.com/bigtable/docs/schema-design-time-series.
[12] TimeSeries Database for storing metrics at Twitter. :https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/metricsdb.html.
[13] Amazon Timestream. https://aws.amazon.com/timestream/.
[14] DB-Engines Ranking of time-series DBMS. https://db-engines.com/en/ranking/time+series+dbms.
[15] InfluxDB. https://www.influxdata.com/.
[16] etcd. https://etcd.io/.
[17] Service Discovery with ZooKeeper. https://cloud.spring.io/spring-cloud-zookeeper/1.2.x/multi/multi_spring-cloud-zookeeper-discovery.html.
[18] Amazon CloudWatch. https://aws.amazon.com/cloudwatch/.
[19] Graphite. https://graphiteapp.org/.
[20] Push vs Pull. http://bit.ly/3aJEPxE.
[21] Pull doesn’t scale - or does it? https://prometheus.io/blog/2016/07/23/pull-does-not-scale-or-does-it/.
[22] Monitoring Architecture. https://developer.lightbend.com/guides/monitoring-at-scale/monitoring-architecture/architecture.html.
[23] Push vs Pull in Monitoring Systems. https://giedrius.blog/2019/05/11/push-vs-pull-in-monitoring-systems/.
[24] Pushgateway. https://github.com/prometheus/pushgateway.
[25] Building Applications with Serverless Architectures. https://aws.amazon.com/lambda/serverless-architectures-learn-more/.
[26] Gorilla. AFast,Scalable,In-MemoryTimeSeriesDatabase:http://www.vldb.org/pvldb/vol8/p1816-teller.pdf.
[27] Why We’re Building Flux, a New Data Scripting and Query Language. https://www.influxdata.com/blog/why-were-building-flux-a-new-data-scripting-and-query-language/.
[28] InfluxDB storage engine. https://docs.influxdata.com/influxdb/v2.0/reference/internals/storage-engine/.
[29] YAML. https://en.wikipedia.org/wiki/YAML.
[30] Grafana Demo. https://play.grafana.org/.

Chapter 6. Ad Click Event Aggregation

[1] Clickthrough rate (CTR): Definition. https://support.google.com/google-ads/answer/2615875?hl=en.
[2] Conversion rate: Definition. https://support.google.com/google-ads/answer/2684489?hl=en.
[3] OLAP functions. https://docs.oracle.com/database/121/OLAXS/olap_functions.htm#OLAXS169.
[4] Display Advertising with Real-Time Bidding (RTB) and Behavioural Targeting. https://arxiv.org/pdf/1610.03013.pdf.
[5] LanguageManual ORC. https://cwiki.apache.org/confluence/display/hive/languagemanual+orc.
[6] Parquet. https://databricks.com/glossary/what-is-parquet.
[7] What is avro. https://www.ibm.com/topics/avro.
[8] Big Data. https://www.datakwery.com/techniques/big-data/.
[9] An Overview of End-to-End Exactly-Once Processing in Apache Flink. https://flink.apache.org/features/2018/03/01/end-to-end-exactly-once-apache-flink.html.
[10] DAG model. https://en.wikipedia.org/wiki/Directed_acyclic_graph.
[11] Understand star schema and the importance for Power BI. https://docs.microsoft.com/en-us/power-bi/guidance/star-schema.
[12] Martin Kleppmann. Designing Data-Intensive Applications. O’Reilly Media, 2017.
[13] Apache Flink. https://flink.apache.org/.
[14] Lambda architecture. https://databricks.com/glossary/lambda-architecture.
[15] Kappa architecture. https://hazelcast.com/glossary/kappa-architecture/.
[16] Martin Kleppmann. Stream Processing. In Designing Data-Intensive Applications. O’Reilly Media, 2017.
[17] End-to-end Exactly-once Aggregation Over Ad Streams. https://www.youtube.com/watch?v=hzxytnPcAUM.
[18] Ad traffic quality. https://www.google.com/ads/adtrafficquality/.
[19] Understanding MapReduce in Hadoop. https://www.section.io/engineering-education/understanding-map-reduce-in-hadoop/.
[20] Flink on Apache Yarn. https://ci.apache.org/projects/flink/flink-docs-release-1.13/docs/deployment/resource-providers/yarn/.
[21] How data is distributed across a cluster (using virtual nodes). https://docs.datastax.com/en/cassandra-oss/3.0/cassandra/architecture/archDataDistributeDistribute.html.
[22] Flink performance tuning. https://nightlies.apache.org/flink/flink-docs-master/docs/dev/table/tuning/.
[23] ClickHouse. https://clickhouse.com/.
[24] Druid. https://druid.apache.org/.
[25] Real-Time Exactly-Once Ad Event Processing with Apache Flink, Kafka, and Pinot. https://eng.uber.com/real-time-exactly-once-ad-event-processing/.

Chapter 7. Hotel Reservation

[1] What Are The Benefits of Microservices Architecture? https://www.appdynamics.com/topics/benefits-of-microservices.
[2] Microservices. https://en.wikipedia.org/wiki/Microservices.
[3] gRPC. https://www.grpc.io/docs/what-is-grpc/introduction/.
[4] Booking.com iOS app.
[5] Serializability. https://en.wikipedia.org/wiki/Serializability.
[6] Optimistic and pessimistic record locking. https://ibm.co/3Eb293O.
[7] Optimistic concurrency control. https://en.wikipedia.org/wiki/Optimistic_concurrency_control.
[8] Change data capture. https://docs.oracle.com/cd/B10500_01/server.920/a96520/cdc.htm.
[9] Debizium. https://debezium.io/.
[10] Redis sink. https://bit.ly/3r3AEUD.
[11] Monolithic Architecture. https://microservices.io/patterns/monolithic.html.
[12] Two-phase commit protocol. https://en.wikipedia.org/wiki/Two-phase_commit_protocol.
[13] Saga. https://microservices.io/patterns/data/saga.html.

Chapter 8. Distributed Email Service

[1] Number of Active Gmail Users. https://financesonline.com/number-of-active-gmail-users/.
[2] Outlook. https://en.wikipedia.org/wiki/Outlook.com.
[3] How Many Emails Are Sent Per Day in 2021? https://review42.com/resources/how-many-emails-are-sent-per-day/.
[4] RFC 1939 - Post Office Protocol - Version 3. http://www.faqs.org/rfcs/rfc1939.html.
[5] ActiveSync. https://en.wikipedia.org/wiki/ActiveSync.
[6] Email attachment. https://en.wikipedia.org/wiki/Email_attachment.
[7] MIME. https://en.wikipedia.org/wiki/MIME.
[8] Threading. https://en.wikipedia.org/wiki/Conversation_threading.
[9] IMAP LIST Extension for Special-Use Mailboxes. https://datatracker.ietf.org/doc/html/rfc6154.
[10] Apache James. https://james.apache.org/.
[11] A JSON Meta Application Protocol (JMAP) Subprotocol for WebSocket. https://tools.ietf.org/id/draft-ietf-jmap-websocket-07.html#RFC7692.
[12] Cassandra Limitations. https://cwiki.apache.org/confluence/display/CASSANDRA2/CassandraLimitations.
[13] Inverted index. https://en.wikipedia.org/wiki/Inverted_index.
[14] Exponential backoff. https://en.wikipedia.org/wiki/Exponential_backoff.
[15] QQ Email System Optimization (in Chinese). https://www.slideshare.net/areyouok/06-qq-5431919.
[16] IOPS. https://en.wikipedia.org/wiki/IOPS.
[17] UUID and timeuuid types. https://docs.datastax.com/en/cql-oss/3.3/cql/cql_reference/uuid_type_r.html.
[18] Message threading. https://www.jwz.org/doc/threading.html.
[19] Global spam volume. https://www.statista.com/statistics/420391/spam-email-traffic-share/.
[20] Warming up dedicated IP addresses. https://docs.aws.amazon.com/ses/latest/dg/dedicated-ip-warming.html.
[21] 2018 Data Breach Investigations Report. https://enterprise.verizon.com/resources/reports/DBIR_2018_Report.pdf.
[22] Sender Policy Framework. https://en.wikipedia.org/wiki/Sender_Policy_Framework.
[23] DomainKeys Identified Mail. https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail.
[24] Domain-based Message Authentication, Reporting & Conformance. https://dmarc.org/.
[25] DB-Engines Ranking of Search Engines. https://db-engines.com/en/ranking/search+engine.
[26] Log-structured merge-tree. https://en.wikipedia.org/wiki/Log-structured_merge-tree.
[27] Microsoft Exchange Conference 2014 Search in Exchange. https://www.youtube.com/watch?v=5EXGCSzzQak&t=2173s.
[28] General Data Protection Regulation. https://en.wikipedia.org/wiki/General_Data_Protection_Regulation.
[29] Lawful interception. https://en.wikipedia.org/wiki/Lawful_interception.
[30] Email safety. https://safety.google/intl/en_us/gmail/.

Chapter 9. S3-like Object Storage

[1] Fibre channel. https://en.wikipedia.org/wiki/Fibre_Channel.
[2] iSCSI. https://en.wikipedia.org/wiki/ISCSI.
[3] Server Message Block. https://en.wikipedia.org/wiki/Server_Message_Block.
[4] Network File System. https://en.wikipedia.org/wiki/Network_File_System.
[5] Amazon S3 Strong Consistency. https://aws.amazon.com/s3/consistency/.
[6] Serial Attached SCSI. https://en.wikipedia.org/wiki/Serial_Attached_SCSI.
[7] AWSCLIlscommand.https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html.
[8] Amazon S3 Service Level Agreement. https://aws.amazon.com/s3/sla/.
[9] Ambry. LinkedIn’sScalableGeo-DistributedObjectStore:https://assured-cloud-computing.illinois.edu/files/2014/03/Ambry-LinkedIns-Scalable-GeoDistributed-Object-Store.pdf.
[10] inode. https://en.wikipedia.org/wiki/Inode.
[11] Ceph’s Rados Gateway. https://docs.ceph.com/en/pacific/radosgw/index.html.
[12] grpc. https://grpc.io/.
[13] Paxos. https://en.wikipedia.org/wiki/Paxos_(computer_science).
[14] Raft. https://raft.github.io/.
[15] Consistent hashing. https://www.toptal.com/big-data/consistent-hashing.
[16] RocksDB. https://github.com/facebook/rocksdb.
[17] SSTable. https://www.igvita.com/2012/02/06/sstable-and-log-structured-storage-leveldb/.
[18] B+ tree. https://en.wikipedia.org/wiki/B%2B_tree.
[19] SQLite. https://www.sqlite.org/index.html.
[20] Data Durability Calculation. https://www.backblaze.com/blog/cloud-storage-durability/.
[21] Rack. https://en.wikipedia.org/wiki/19-inch_rack.
[22] Erasure Coding. https://en.wikipedia.org/wiki/Erasure_code.
[23] Reed–Solomon error correction. https://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction.
[24] Erasure Coding Demystified. https://www.youtube.com/watch?v=Q5kVuM7zEUI.
[25] Checksum. https://en.wikipedia.org/wiki/Checksum.
[26] Md5. https://en.wikipedia.org/wiki/MD5.
[27] Sha1. https://en.wikipedia.org/wiki/SHA-1.
[28] Hmac. https://en.wikipedia.org/wiki/HMAC.
[29] TIMEUUID. https://docs.datastax.com/en/cql-oss/3.3/cql/cql_reference/timeuuid_functions_r.html.

Chapter 10. Real-time Gaming Leaderboard

[1] Man-in-the-middle attack. https://en.wikipedia.org/wiki/Man-in-the-middle_attack.
[2] Redis Sorted Set source code. https://github.com/redis/redis/blob/unstable/src/t_zset.c.
[3] Geekbang. https://static001.geekbang.org/resource/image/46/a9/46d283cd82c987153b3fe0c76dfba8a9.jpg.
[4] Building real-time Leaderboard with Redis. https://medium.com/@sandeep4.verma/building-real-time-leaderboard-with-redis-82c98aa47b9f.
[5] Build a real-time gaming leaderboard with Amazon ElastiCache for Redis. https://aws.amazon.com/blogs/database/building-a-real-time-gaming-leaderboard-with-amazon-elasticache-for-redis.
[6] How we created a real-time Leaderboard for a million Users. https://levelup.gitconnected.com/how-we-created-a-real-time-leaderboard-for-a-million-users-555aaa3ccf7b.
[7] Leaderboards. https://redislabs.com/solutions/use-cases/leaderboards/.
[8] Lambda. https://aws.amazon.com/lambda/.
[9] Google Cloud Functions. https://cloud.google.com/functions.
[10] Azure Functions. https://azure.microsoft.com/en-us/services/functions/.
[11] Info command. https://redis.io/commands/INFO.
[12] Why redis cluster only have 16384 slots. https://stackoverflow.com/questions/36203532/why-redis-cluster-only-have-16384-slots.
[13] Cyclic redundancy check. https://en.wikipedia.org/wiki/Cyclic_redundancy_check.
[14] Choosing your node size. https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/nodes-select-size.html.
[15] How fast is Redis? https://redis.io/topics/benchmarks.
[16] Using Global Secondary Indexes in DynamoDB. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html.
[17] Leaderboard & Write Sharding. https://www.dynamodbguide.com/leaderboard-write-sharding/.

Chapter 11. Payment System

[1] Payment system. https://en.wikipedia.org/wiki/Payment_system.
[2] AML/CFT. https://en.wikipedia.org/wiki/Money_laundering.
[3] Card scheme. https://en.wikipedia.org/wiki/Card_scheme.
[4] ISO 4217. https://en.wikipedia.org/wiki/ISO_4217.
[5] Stripe API Reference. https://stripe.com/docs/api.
[6] Double-entry bookkeeping. https://en.wikipedia.org/wiki/Double-entry_bookkeeping.
[7] Books, an immutable double-entry accounting database service. https://developer.squareup.com/blog/books-an-immutable-double-entry-accounting-database-service/.
[8] Payment Card Industry Data Security Standard. https://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard.
[9] Tipalti. https://tipalti.com/.
[10] Nonce. https://en.wikipedia.org/wiki/Cryptographic_nonce.
[11] Webhooks. https://stripe.com/docs/webhooks.
[12] Customize your success page. https://stripe.com/docs/payments/checkout/custom-success-page.
[13] 3D Secure. https://en.wikipedia.org/wiki/3-D_Secure.
[14] Kafka Connect Deep Dive – Error Handling and Dead Letter Queues. https://www.confluent.io/blog/kafka-connect-deep-dive-error-handling-dead-letter-queues/.
[15] Reliable Processing in a Streaming Payment System. https://www.youtube.com/watch?v=5TD8m7w1xE0&list=PLLEUtp5eGr7Dz3fWGUpiSiG3d_WgJe-KJ.
[16] Chain Services with Exactly-Once Guarantees. https://www.confluent.io/blog/chain-services-exactly-guarantees/.
[17] Exponential backoff. https://en.wikipedia.org/wiki/Exponential_backoff.
[18] Idempotence. https://en.wikipedia.org/wiki/Idempotence.
[19] Stripe idempotent requests. https://stripe.com/docs/api/idempotent_requests.
[20] Idempotency. https://developer.paypal.com/docs/platforms/develop/idempotency/.
[21] Paxos. https://en.wikipedia.org/wiki/Paxos*(computer_science).
[22] Raft. https://raft.github.io/.
[23] YogabyteDB. https://www.yugabyte.com/.
[24] Cockroachdb. https://www.cockroachlabs.com/.
[25] What is DDoS attack. https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/.
[26] How Payment Gateways Can Detect and Prevent Online Fraud. https://www.chargebee.com/blog/optimize-online-billing-stop-online-fraud/.
[27] Advanced Technologies for Detecting and Preventing Fraud at Uber. https://eng.uber.com/advanced-technologies-detecting-preventing-fraud-uber/.
[28] Re-Architecting Cash and Digital Wallet Payments for India with Uber Engineering. https://eng.uber.com/india-payments/.
[29] Scaling Airbnb’s Payment Platform. https://medium.com/airbnb-engineering/scaling-airbnbs-payment-platform-43ebfc99b324.
[30] Payments Integration at Uber: A Case Study – Gergely Orosz. https://www.youtube.com/watch?v=yooCE5B0SRA.

Chapter 12. Digital Wallet

[1] Transactional guarantees. https://docs.oracle.com/cd/E17275_01/html/programmer_reference/rep_trans.html.
[2] TPC-E Top Price/Performance Results. http://tpc.org/tpce/results/tpce_price_perf_results5.asp?resulttype=all.
[3] ISO 4217 CURRENCY CODES. https://en.wikipedia.org/wiki/ISO_4217.
[4] Apache ZooKeeper. https://zookeeper.apache.org/.
[5] Martin Kleppmann. Designing Data-Intensive Applications. O’Reilly Media, 2017.
[6] X/Open XA. https://en.wikipedia.org/wiki/X/Open_XA.
[7] Compensating transaction. https://en.wikipedia.org/wiki/Compensating_transaction.
[8] SAGAS, HectorGarcia-Molina. https://www.cs.cornell.edu/andru/cs711/2002fa/reading/sagas.pdf.
[9] Eric Evans. Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, 2003.
[10] Apache Kafka. https://kafka.apache.org/.
[11] CQRS. https://martinfowler.com/bliki/CQRS.html.
[12] Comparing Random and Sequential Access in Disk and Memory. https://deliveryimages.acm.org/10.1145/1570000/1563874/jacobs3.jpg.
[13] mmap. https://man7.org/linux/man-pages/man2/mmap.2.html.
[14] SQLite. https://www.sqlite.org/index.html.
[15] RocksDB. https://rocksdb.org/.
[16] Apache Hadoop. https://hadoop.apache.org/.
[17] Raft. https://raft.github.io/.
[18] Reverse proxy. https://en.wikipedia.org/wiki/Reverse_proxy.

Chapter 13. Stock Exchange

[1] LMAX exchange was famous for its open-source Disruptor. https://www.lmax.com/exchange.
[2] IEX attracts investors by “playing fair”, also is the “Flash Boys Exchange”. https://en.wikipedia.org/wiki/IEX.
[3] NYSE matched volume. https://www.nyse.com/markets/us-equity-volumes.
[4] HKEX daily trading volume. https://www.hkex.com.hk/Market-Data/Statistics/Consolidated-Reports/Securities-Statistics-Archive/Trading\_Value_Volume_And_Number\_Of\_Deals?sc_lang=en#select1=0.
[5] All of the World’s Stock Exchanges by Size. http://money.visualcapitalist.com/all-of-the-worlds-stock-exchanges-by-size/.
[6] Denial of service attack. https://en.wikipedia.org/wiki/Denial-of-service_attack.
[7] Market impact. https://en.wikipedia.org/wiki/Market_impact.
[8] Fix trading. https://www.fixtrading.org/.
[9] Event Sourcing. https://martinfowler.com/eaaDev/EventSourcing.html.
[10] CME Co-Location and Data Center Services. https://www.cmegroup.com/trading/colocation/co-location-services.html.
[11] Epoch. https://www.epoch101.com/.
[12] Order book. https://www.investopedia.com/terms/o/order-book.asp.
[13] Order book. https://en.wikipedia.org/wiki/Order_book.
[14] How to Build a Fast Limit Order Book. https://bit.ly/3ngMtEO.
[15] Developing with kdb+ and the q language. https://code.kx.com/q/.
[16] Latency Numbers Every Programmer Should Know. https://gist.github.com/jboner/2841832.
[17] mmap. https://en.wikipedia.org/wiki/Memory_map.
[18] Context switch. https://bit.ly/3pva7A6.
[19] Reliable User Datagram Protocol. https://en.wikipedia.org/wiki/Reliable_User_Datagram_Protocol.
[20] Aeron. https://github.com/real-logic/aeron/wiki/Design-Overview.
[21] Chaos engineering. https://en.wikipedia.org/wiki/Chaos_engineering.
[22] Raft. https://raft.github.io/.
[23] Designing for Understandability: the Raft Consensus Algorithm. https://raft.github.io/slides/uiuc2016.pdf.
[24] Supported Matching Algorithms. https://bit.ly/3aYoCEo.
[25] Dark pool. https://www.investopedia.com/terms/d/dark-pool.asp.
[26] HdrHistogram: A High Dynamic Range Histogram. http://hdrhistogram.org/.
[27] HotSpot (virtual machine). https://en.wikipedia.org/wiki/HotSpot\_(virtual_machine).
[28] Cache line padding. https://bit.ly/3lZTFWz.
[29] NACK-Oriented Reliable Multicast. https://en.wikipedia.org/wiki/NACK-Oriented_Reliable_Multicast.
[30] AWS Coinbase Case Study. https://aws.amazon.com/solutions/case-studies/coinbase/.