Category: Software Development

Minimum Viable Architecture – good enough is good enough in an enterprise http://redmonk.com/jgovernor/2017/06/13/minimum-viable-architecture-good-enough-is-good-enough-in-an-enterprise/

Category: Software Development

Web API best practices — forward compatibility patterns

Designing APIs and clients for forward compatibility is the best way to achieve evolvability and maintainability in a microservice architecture. Wikipedia defines forward compatibility as “a design characteristic that allows a system to accept input intended for a later version of itself.” Designing APIs and clients to be forward compatible allows each side of that

Continue Reading…

Category: Software Development

Category: Software Development

Category: Software Development

How to componentize a monolith

Micro-service architectures are all the rage these days. Let’s say, totally hypothetically, that you already have a large code base that has all the pathologies we have come to expect from monoliths. You may think something like “we should break this behemoth up into a collection of components, each of which is comprehensible to mere

Continue Reading…

Category: Software Development

Services Questions

I recently had a colleague ask me several questions about service oriented architectures and breaking monoliths apart. This is an area in which i have a good deal of experience so i decided to publish my answers here. What is a “service”? A “service” is a discrete bit of functionality exposed via well defined interface

Continue Reading…

Category: Software Development

Category: Software Development

Really unique UUIDs

Recently we encountered a problem with duplicate time UUIDs while loading a lot of data into Cassandra. Duplicates are not normally a problem with UUIDs but occasionally you need to generate time UUIDS from a low resolution clock and/or load a lot of data really fast. In these situations you can overwhelm the ability of

Continue Reading…

Category: Software Development

Category: Software Development