recentpopularlog in

mcherm : architecture   57

The Troublesome Active Record Pattern
Database access AND RESTful API design both suffer because the abstraction doesn't allow for optimized performance. The author suggests instead supporting queries and remote-procedure-call-style APIs.
via:HackerNews  database  api  APIDesign  architecture  programming 
13 days ago by mcherm
"Commander: Better Distributed Applications through CQRS and Event Sourcing" by Bobby Calderwood - YouTube
Video: Use Event Sourcing (and CQRS) because it better handles large distributed applications and addresses Conway's Law issues. Also talks about providing the illusion of synchronicity.
BobbyCalderwood  architecture 
29 days ago by mcherm
Joyful Isolation - Wide Awake Developers
Today's virtualization gives us many layers, all of which try to provide isolation (and all of which might be vulnerable or need a patch. Maybe a single OS that offered really good isolation would be a better design than what has evolved.
operatingsystem  via:cof-dist-engineers  architecture 
9 weeks ago by mcherm
Is Shared Database in Microservices actually anti-pattern?
Microservices ought to be allowed to share a database because they'll be dependent on each other ANYWAY and it is a whole lot more efficient.
architecture  programming  microservices  via:HackerNews 
february 2019 by mcherm
Private by Design: How we built Firefox Sync - Mozilla Hacks - the Web developer blog
Firefox sync keeps data secure from Mozilla by using the passphrase to generate 2 keys - one authenticates to Mozilla's servers and the other is used to encrypt/decrypt *in the client*. Article discusses why they thought this approach was better for users than several alternatives used by other browsers.
privacy  security  encryption  firefox  via:HackerNews  design  architecture  chrome  browsers 
november 2018 by mcherm
The Hacks of Life: When Not To Serialize
Write custom code to serialize your data structures to disk. If it is automatically transferring the in-memory structures to disk then you will need a translator when V2 comes along and the on-disk and in-memory structures diverge.
design  architecture  programming 
august 2018 by mcherm
The Twelve-Factor App
A really GOOD set of policies for architecture of applications built to run in the cloud. (Or anywhere, for that matter!)
architecture  programming  devops  softwaredevelopment  cloudcomputing  refs 
june 2018 by mcherm
Serverless Architectures - by ThoughtWorks.
An essay on "serverless" architecture from ThoughtWorks. Does a pretty good job of summarizing it.
serverless  architecture  via:MartinFowler 
july 2017 by mcherm
UUID or GUID as Primary Keys? Be Careful! – Tom Harrison Jr
How to do a primary key for a DB? Don't store GUID as a string. Use a small int as a key just within the DB but generate a GUID to use for all external references.
programming  database  architecture  via:HackerNews 
june 2017 by mcherm
You Are Not Google – Bradfield
Far too often people are using tools (Hadoop, Kafka, microservices etc) that were designed for her big companies but are not a good fit for their needs.
architecture  programming  bigdata  via:HackerNews 
june 2017 by mcherm
AWS Load Balancers: Classic vs Application - Sumo Logic
A really helpful summary of AWS ALB (Application Load Balancer) and what it is capable of doing.
aws  architecture 
january 2017 by mcherm
Models for hierarchical data
Really good overview of different approaches for putting a tree structure or hierarchy into an SQL database (and possibly NoSQL databases that use tables).
database  architecture  sql  via:HackerNews 
december 2016 by mcherm
Ben Northrop - SOA and the N + 1 Selects Problem
This blog posting describes one of the key problems I see with the move to break up large databases into tiny separate ones in the name of "microservices". What if you want to do "a join"?
BenNorthrop  via:BenNorthrop  microservices  database  programming  architecture 
december 2016 by mcherm
Ben Northrop - Beyond Role-Based Access Control
A nice writeup listing some of the tricky problems in the granting of user access. Come back to this when I want to build such a system.
programming  BenNorthrop  security  architecture  design 
november 2016 by mcherm
How Twitch Uses PostgreSQL
Some PostgreSQL architecture and performance choices made by Twitch.
postgresql  database  performance  architecture  via:HackerNews 
october 2016 by mcherm
An Awkward MicroServices Conversation
A YouTube video that does a wonderful job of skewering the currently popular microservices fad.
via:reddit  programming  microservices  architecture 
august 2016 by mcherm
10 things to avoid in docker containers – Red Hat Developer Blog
Actually, this sounds like really good advice on the use of Docker.
docker  via:HackerNews  architecture 
march 2016 by mcherm
Wizards and warriors, part five | Fabulous adventures in coding
This is the final episode in a lengthy series, but it contains the key insight: certain complex rules should not be implemented directly in code, but abstracted into policy objects which can then be applied as needed. *This is insightful!!*
programming  via:EricLippert  EricLippert  architecture 
may 2015 by mcherm
Cookie Cutter Scaling - Paul Hammant's blog
Two approaches: several tiers calling each other with an independently-scaled cluster for each tier OR a single tier (using libraries in lieu of services). The latter saves on remote call overhead but may increase deployment difficulty (it's now a big blob of code) or hit memory use limits.
via:MartinFowler  architecture  programming  scalability 
december 2014 by mcherm
Sacrificial Architecture - build to scale 10x but not 100x
In the face of exponential growth it's often WISE to throw everything away and build from scratch.
scalability  architecture  fowler  via:MartinFowler  programming 
december 2014 by mcherm
Queues Don't Fix Overload
If your throughput is larger than the smallest constraint on your system, then it will back up. Queues don't help, you need to either drop some work unprocessed or provide "backpressure" (usually in the form of getting slower). Decide this beforehand: never assume you system can handle an infinite amount of traffic.
programming  scalability  scaling  via:HackerNews  architecture 
november 2014 by mcherm
BranchByAbstraction - Martin Fowler
A pattern for refactoring and moving away from one back-end to another (without a "big bang").
refactoring  softwaredevelopment  architecture  programming 
january 2014 by mcherm
From the principal architect -- Skype / NSA - Dave Farber - com.listbox.v2.ip - MarkMail
Why Skype was changed from p2p to server-based. (NSA bribes for wiretaps might have helped too.)
skype  via:HackerNews  p2p  architecture 
june 2013 by mcherm
The LMAX Architecture
Using a no-locks implementation of a big ring buffer instead of queues for passing things between threads. This allowed astounding throughput from a single-thread core engine (which massively simplified the system architecture).
architecture  concurrency  performance  java  MartinFowler 
january 2013 by mcherm
Accountants Don't Use Erasers - PatHelland's WebLog - Site Home - MSDN Blogs
Keeping a log of all events; current state is just a summary of part of the full transaction log. Particularly useful in distributed computing. Also, availability often trumps correctness.
programming  architecture  database  via:HackerNews 
january 2013 by mcherm
Mobile Apps: HTML5 vs Native
Excellent insights on thin vs thick clients and how that never-ending war has now moved to mobile phones.
EricSink  via:EricSink  mobile  html5  architecture  programming  webdevelopment 
august 2012 by mcherm
Too Much Specialization Is Making Programming a Poorer Experience : The Codist
Giving everyone specific roles (BA, QA, architect, programmer, DBA, etc) is a very different experience, and far less efficient than people who understand it all. Personally, I wonder whether a few people who cross lines can help hold together a bigger team of mostly single-functional people.
softwaredevelopment  architecture  via:theCodist  blogworthy 
april 2012 by mcherm
Spotify P2P Music Player
A presentation on how Spotify uses P2P technology to build their (legal) music player.
p2p  architecture  programming  spotify 
march 2012 by mcherm
The Great Disk Drive in the Sky: How Web giants store big—and we mean big—data
A detailed Ars Technica article on the file systems invented by Google, Amazon and Microsoft to store their giant data as well as the open-source clones of them.
programming  architecture  cloudcomputing  nosql  scalability  scaling  ArsTechnica  via:ArsTechnica 
february 2012 by mcherm
High Scalability - High Scalability - Paper: Feeding Frenzy: Selectively Materializing Users’ Event Feeds
How do you build something like twitter, Google+, or Tumblr where users consume a variety of feeds and want to see their personalized latest data, but the # of posts and speed varies by orders of magnitude? Use both push and pull model, selecting on the basis of the producer-consumer pair.
scalability  programming  architecture 
february 2012 by mcherm
Scala's version fragility make the Enterprise argument near impossible - Lift
In order for a language, in this case Scala, to grow beyond a certain size it needs some way to handle deeply nested library dependencies. Java does this well by having amazing backward compatibility. Scala has no good solution today and that's a problem.
scala  languagedesign  librarydesign  architecture  via:HackerNews 
december 2011 by mcherm
The IT-Architecture of Muscula
An interesting architecture for a webapp: no front-end servers; all UI rendered by javascript with HTML in a CDN. Middleware is also an API.
programming  via:reddit  architecture  webdevelopment 
december 2011 by mcherm
Good Programmers Make Bad Architects | Hacker News
Someone claims that programmers know one language well and architects need to know multiple languages. I disagree.
via:HackerNews  programming  architecture  mypostings 
august 2011 by mcherm
A concurrent programming architecture that runs it all on one CPU
They needed to handle 6 million transactions/second. Managing queues took most of their time. So they re-architected so that separate threads managed input and output but the core computation was all on a single thread. They also ensured only one thread writing to any given memory scan line. Resulting architecture was unusual and successful.
via:MartinFowler  MartinFowler  concurrentprogramming  parallelprogramming  concurrency  programming  architecture 
august 2011 by mcherm
The Architecture of Open Source Applications
A whole book teaching software architecture by reviewing the architecture of actual open source projects.
programming  architecture  books  reference  toread  via:HackerNews  opensource 
august 2011 by mcherm
Why Events Are A Bad Idea (for high-concurrency servers)
Contrary to claims, threads > events. The 2 are duals and should be equal. Threads map to our brains better. BUT, most thread libraries/compilers suck; we made a good one to prove it's possible. Cooperative threading and compiler hints are essential.
concurrency  programming  architecture  scalability  research  asynchronous  threading  computerscience  via:reddit 
august 2011 by mcherm
Evernote Architecture - 9 Million Users and 150 Million Requests a Day
The architecture of Evernote. They shard users out to separate systems, each has RAID drives directly attached.
scalability  architecture 
may 2011 by mcherm
Coding Horror: Working with the Chaos Monkey
Netflix actually created a job that randomly killed jobs and machines in their network. They did it to train themselves to make each system robust enough to continue running _somehow_ even if other systems it used failed. The result is that Netflix is really reliable.
netflix  architecture  softwaredevelopment  design  via:CodingHorror  JeffAtwood 
april 2011 by mcherm
Paul Tyma: Writing Java Multithreaded Servers - whats old is new (PDF Slides)
nio may actually performed WORSE than thread-per-connection in modern JVMs with good data structures.
java  programming  threading  concurrency  scalability  via:HackerNews  io  parallelprogramming  architecture 
april 2011 by mcherm
ArchitectNotes – Varnish
Because of how new OS'es handle virtual memory, it's not efficient to copy things back and forth between disk and memory. It's better to just memory-map a hunk of disk and work within that.
programming  performance  architecture  memory 
july 2010 by mcherm
The S stands for Simple : Pete Lacey’s Weblog
A dialog in which a SOAP enthusiast explains things to an actual architect.
funny  soap  programming  REST  architecture  soa 
december 2009 by mcherm
Long-term storage of values > Message from Brian Hurt > Archives of the Caml mailing list
Use of a database to store flattened objects: not a good idea. Instead, plan out an implementation-independent format for your data and use that.
programming  architecture  database 
october 2009 by mcherm
Ben Northrop - Does Programming to Interfaces Buy Us Anything?
Always creating an interface with a single implementing object is a widely-seen pattern, touted as a "best practice", but one which the author (and I agree) thinks has an important negative side as well, and one which is rarely admitted to by the adherents of the practice.
programming  architecture  designpatterns  BenNorthrop  via:BenNorthrop 
august 2009 by mcherm
The Architect's Dilemma - Ben Northrop
To decide whether to use YAGNI or BDUF (whether to architect for future needs) assign probabilities to the chance of various outcomes and give values for the outcomes. Then multiply.
softwaredevelopment  agile  programming  via:BenNorthrop  BenNorthrop  architecture 
july 2009 by mcherm
Time and Space Tradoffs in Version Control Storage
Comparing some different options for storing data in a version control system, and attempting to map out the time-vs-space tradeoff space.
via:EricSink  EricSink  versioncontrol  compression  algorithms  datastructures  programming  mypostings  architecture 
april 2009 by mcherm
Eventually Consistent - Revisited - All Things Distributed
An essay on some of the issues in ensuring that massively scaled databases are consistent. Includes a definition of "eventually consistent".
programming  scalability  database  cloudcomputing  amazon  architecture 
march 2009 by mcherm

Copy this bookmark:

to read