January 9, 2020
Articles on building large systems
The good overview of using kubernetes for large finance projects by a brilliant architect Oleg Chunikhin (now CTO at Kublr) and Terry Shea, with whom I was lucky to work during early days of my career:
Making Kubernetes a Reality for Financial Services
Here's a nice description of the key moments on way working on scalable cloud system:
How to sleep at night having a cloud service: common architecture do's
A must-read about choosing a technologies:
Choose boring technology.
Labels: architecture, bookmarks, cloud, kubernetes, scalability, software architecture
January 8, 2020
Android: one ViewModel per view
Do not create huge ViewModels, keep it simple. Yes, it's more classes per view, however your support and development costs are closer to linear in time.
Labels: android, architecture, mvvm, software architecture, view, viewmodel
January 10, 2017
Notes on Apache Spark
1. Distributed computation engine (aim on low latency)
2. Could be used both batch-mode or interactive
3. In-memory
4. Faster than Hadoop
5. Fault-tolerance out-of-the box
Labels: apache spark, software architecture, software engineering, spark
Notes on Apache Cassandra
1. cassandra has thing called "partitioning key" which is a part of the _primary key_
PK -> consistency hashing function -> value determines which Bucket (range of Hashes) it fits into -> which node we need to talk to
2. CAP theorem tradeoffs. Cassandra is Highly Available (Availability) and Partition Tolerant (Partitioning)
3. Replication. RF = 3 - factor of replication.
4. Consistency level (how many confirmations of actual nodes has written data): { All, Quorum, One }. Also can have a modifier "Local" in case of multiple data centers. We can write to different DC which could be one for OLAP one for OLTP (for different queries does not impact performance each other)
5. CL - per query; RF - per keyspace
Labels: apache cassandra, big data, cassandra, software architecture