Scaling up and Focusing on Reliability

Still waiting for AI Programmers...
I cannot speak for what the other guys are doing, but I think what we do is pretty awesome.
In this article, I will show you what MyCartage has done in our startup phase to create an incredibly reliable and infinitely scalable business solution.
A solution that you can count on every single day 24/7 that will never fail. This system is not like anything built before, and we know that because the technology driving this system is new.
Let’s take a look under the hood of MyCartage.
MyCartage has a code written infrastructure. Our system is an intricate network of harmonious services provided by AWS. Under the hood, our app is designed using the AWS CDK which breaks up our code into lots of small pieces for us and deploys and tests them in a deeply robust service network. All these services do only a single function and serve a single purpose. They only know how to do one thing.
We send out thousands of invoices.

- Api Gateway receives an event telling it to send out 100 invoices. A function is called which publishes 100 new events to the event bridge.

- The event bridge fires up 100 instances of the next function which generates and sends out the invoices. It will write its response to the SQS queue.

- The SQS queue will verify that the invoice has successfully been sent otherwise it will retry the event until it does.
Hmm, did you see what was so amazing here? ('''Pause 2 seconds'''). Yup, There is no computer running this code. ( Or maybe 100 computers are running this code ) This is a chain of services provided by Amazon, its called a serverless runtime.
By eliminating the need to have a computer, you eliminate the threat of a lot of stuff. Running a computer in the cloud can sometimes lead to more harm than good. As a software engineer, our main focus should always be, "Does this make sense?". Computers are vulnerable to crashes. They have a good amount of CPU power & memory, but they also have a finite amount of those. Going any over and its system failure.
Our entire application does not run on computers, ( In our startup phase ). Maybe someday we hope to properly set up a server network, but that’s far into the future. For now, we are just building ultra-reliable stuff and letting Amazon manage it for us. I trust Amazon. Also its a lot more expensive to run computers, that how we have such a competive rate compared to everyone else.
These services auto scale up to meet demand. We are having fun seeing all the different ways to implement app deployment. We will always ask ourselves, "Does this make sense?".
We beleive these methodologies!
Thank you, guys.
I hope you found this article fun. And let me know if you want to see more of the really cool stuff we do here.