How to leverage persistent layers for atomic transactions with guaranteed delivery

Photo by Daria Nepriakhina on Unsplash

This article is a two-part series about how to engineer live data replication architectures using SQL triggers, and the outbox pattern. You can read part one here.

Let’s not sugarcoat it, software engineering as a profession is mostly about data plumbing — there I said it. I am reiterating a statement by Karl Hughes in one of his articles titled, “The Bulk of Software Engineering is Just Plumbing”, but the statement is true isn’t it?

Most of us use tools that are already provided to us, the advent of new open-source technologies has also solved a lot of the optimization…


A step-by-step guide to how to add stress tests inside your CI pipeline

runner crouched at the starting line
Photo by Braden Collum on Unsplash

There are a slew of tests an application has to pass before it is cleared for production. From unit tests to performance tests, each is as important as the rest. On March 31, 2020, Azure DevOps officially retired its cloud-based Apache JMeter load testing tool. This proves as a predicament because there will be no replacement for the tool and users have to self-host machines for load testing.

Developers from all around started to come out with their own solutions, from dockerized JMeter meant for load testing other containers to making their own dedicated servers and implementing load tests manually…


Demystifying MultiBlocProviders while making a great user experience in the process.

Hummingbirds
Photo by James Wainscoat on Unsplash.

Flutter has taken the world by storm. More people are migrating to it and more corporations are using it to build their apps. The reason behind the migration is not Flutter itself but rather the ecosystem maturing in the last few years.

If you have ever coded a Flutter app, you might know of a library named Cubit. Cubit is a state management library that helps implement reactive programming. When building mobile apps, you need some kind of state management. Otherwise, your data will be all over the place.

But we will not be talking about Cubit at all today…


The process of applying stoicism in everyday life.

Photo by Markus Leo on Unsplash

The late author, Sir Terry Pratchett once said, “Wisdom comes from experience. Experience is often a result of lack of wisdom”. This quote has resonated with me more as I am entering adulthood because I have started to notice things that my younger self wouldn’t.

We like to get caught up in problems that don’t concern us. More problems today arose not because of what happened rather in how we choose to respond to the problem. Frankly, it is more so in the dividing nature of politics nowadays.

It is no wonder that stoicism is being more popular and being…


In a way, two of the best things you can learn are marketing and sales.

Photo by Yingchou Han on Unsplash

A few years back, I regularly volunteer for a non-profit organization in my university. The non-profit organization focuses on teaching children in Indonesia. More specifically, the ones who require tutoring and are being left behind at school.

As you can imagine, the problems the children have don’t come from the lack of resources alone but also from the lack of interest. “How can we make learning interesting?”, was the main predicament we were trying to solve daily.

The experience was full of ups and downs, and through it all, I learned a few key lessons that helped me shape my…


A guide to how you should structure your service layer in Flutter.

Making large Flutter applications can be a pain if you don’t implement good design patterns. However, there are lots of design patterns made to solve this problem. One of these patterns is the Business Logic Component pattern or simply BLoC.

But today, we are not going to talk about the state management portion of an app. Rather, we will be talking about the service layer. Using BLoC only simplifies our state management and it doesn’t solve how we should handle the service layer. Our goal is to make the API calls as clean as possible.

A Clean Service Layer

How do you define a…


Write better and more readable frontend APIs using Axios

Plant set to white backdrop
Photo by Sarah Dorweiler on Unsplash.

Making frontend applications is not as simple as it used to be. Frontend frameworks like React and Vue.js rely heavily on APIs. This adds complexity to our app because we need to manage how we call these APIs. One solution is to simplify the process by writing clean API calls.

But wait, what are “clean API calls”? To me, that means the proper structuring of API calls, making them easy to read and maintain. First, I do this by utilizing the single-responsibility principle. …


The link between consumerism and productive societies

Photo by Mike Von on Unsplash

Consumerism is seen as a negative trend in most of today’s society. Because the behavior is associated with being pretentious, greedy, or even mindless. It doesn’t uphold the values of modesty and generosity. “Don’t buy what you don’t need.” is what most people would think when confronted with consumerism.

But what I would like to acknowledge is the fact that consumerism correlates with an important societal trait — Productivity. There is an interesting link between the two, sometimes even complements each other. …


Setting up a .NET Core backend for your frontend and building secure apps using cookies

Two cookies on a plate
Photo by Olia Gozha on Unsplash.

In the old days, web applications were treated as one. There was no separation between frontend and backend apps — at least not like today. The reason was that back then, computers were not as powerful as they are today. Browsers used to rely on servers to render the frontend and return it as simple HTML. This technique is called server-side rendering. These kinds of mindsets are what gave rise to frameworks like ASP.NET Web Forms.

But as innovations in computing increased rapidly, modern computers became much more powerful than they used to be. …


A story of a king that can change your perspective on wealth, life, and relationships.

Photo by Pixabay on Pexels

Few things in life are more sought after other than money. The attainment of wealth can correlate to a lot of things, either as a status symbol or the attainment of financial freedom. Of course, the reason money is sought after is because people need it to fulfill their daily needs. It is also the means of how we can get things.

But what if the wealth we own was received in a short period of time? Let’s say through either inheritance or winning the lottery perhaps. It’s no secret that the key to being wealthy is how you maintain…

Agustinus Theodorus

Loves to share his thoughts and opinions on the internet.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store