RIP @simple. Here& #39;s a walk down memory lane. The fintech technology edition...
Context note. This 2010+ architecture. You probably don’t want to copy it today. A lot of the principles remain but the choice technologies have shifted. So beware. Also, I haven’t worked @simple for years, so some of this is probably outdated.
Simple ran on @awscloud. We started building in the cloud pre-VPC when dinosaurs roamed the earth. We built a bespoke IaC system called CloudBank. It worked. Mostly.
We moved the backend to a monorepo a few years in. Almost all backend code was @scala_lang. Source control on a self-hosted @github enterprise instance. Build was Jenkins + Maven. Not the best monorepo stack.
We had a service oriented architecture. A “service” was a few EC2 instances and a dedicated @postgresql database. These all lived in a walled garden VPC. I’ll talk more about services shortly.
The service instance stack was @scala_lang and Dropwizard. Thanks @coda. Pure REST APIs.
Authnz was handled externally but all service-to-service/database chatter was x509 cert secured.
Service discovery was through DNS. Kind of janky but worked for the most part. It& #39;s always DNS.
Ok, so the fun part: services. Naming services was a bone of contention among the team. Not quite as controversial as the great IRC to @slack move but controversial none the less.
The primary concern was that the service names are not self evident to what the service actually does. For me, it’s now the most endearing part of the system, so that’s what I’m going to focus on.
Also, most every service also had a startup ASCII banner. I’ve collected those where I could and linked to them.
Arroway:

Handles customer-to-customer contacts, transfers, and a never released feature called MoneyDrop. Like AirDrop but for money. https://gist.github.com/jarreds/24b288df366e37c17fa6b8b9cceebd8a">https://gist.github.com/jarreds/2...
Beam:

Communicated with The Bancorp Bank to keep systems-of-record in sync. We owned the SoR in this case. They had a SOAP API called CorpConnect which we lovingly wrote a SOAP client for called CorpseConnect. https://gist.github.com/jarreds/c1410eace18447cf6ef12d5e95a36d68">https://gist.github.com/jarreds/c...
Buckingham:

An accounting service. Implemented an append only ledger. Kept track of transactions and balances for a long time. https://gist.github.com/jarreds/19ca75481e107e9cf99703ebb8790136">https://gist.github.com/jarreds/1...
Capers (previously Obelisk):

A bill payment service. Integrated with FiServ.
Carmel

The user service. Passwords (bcrypt), customer metadata, and a hodgepodge of stuff. Maybe the oldest service? https://gist.github.com/jarreds/6c1e4bbc270e06348f5e0e3939c32753">https://gist.github.com/jarreds/6...
Cheddar:

Manages goals (envelope budgeting) and the accounting for that.
Chuckles:

Subscribes to and consumes @salesforce push topics.
Corndog (originally Corndoge):

Recon service that did lots of SFTP file processing. Corndog is an anagram of recon if you squint right. Not the only recon system. Recon is *very* important if you’r a fintech. https://gist.github.com/jarreds/1ee9ccd73556a053d3481b4c5044b4e9">https://gist.github.com/jarreds/1...
Demux:

Kafka + PostgreSQL logical replication demultiplexer.
Kumquat:

Bridge to FDC through IBM WebSphere MQ using OpenDataStreams (ODS, sometimes called "odius"). https://gist.github.com/jarreds/0d5a4284fddd7f3cc93f6802cfa14fbd">https://gist.github.com/jarreds/0...
Multipass:

Identity verification (IDV) service.
Mux:

Finite state machine driven materialized views as a service.
Semisonic:

I honestly don’t remember :(
You can follow @webriots.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: