Dovid Kopel - Technologist

Technology Consigliere & Innovator, Open Source Evangelist, Geek, Lefty

Musing about computers, technology, and science

December 01, 2023

The Frugal Architect Explained

After combing through the words of the brilliant Werner Vogels regarding cost-based architecture, I felt I wanted to elaborate on his concise and precise words. Here the word product is interchangeable for product, service, component, module, application, system, etc.

November 05, 2023

pg_cron

If you have any large relational databases there is a good chance that you are using materialized views. One way that you can refresh your materialized views is via trigger on insert or on uppdate to a table. This can often be too often and cause issues. Until recently when using Spring I would use the @Scheduled annotation and run a refresh materialized view directly from the application. This is fine but you may end up with a large number of @Scheduled methods and that can cause collisions and other unfortunate circumstances. I had always wondered what if I could just schedule a query to be executed on the database itself. It turns out that this exists and is very easy to setup and utilize.

March 12, 2023

Amplify

If you are looking for an end-to-end solution for a data centric application, Amplify might be for you. Amplify is aimed to be a complete solution from frontend design to authentication and even data. The service is heavily based on the GraphQL and AppSync concept. Let me dig in a bit what this means. With GraphQL you define a model or schema. That schema drives everything else. Amplify will create necessary data storage to support the schema defined, this is in the form of DynamoDB tables. Then their CLI tool will create client-side bindings in JavaScript that give you direct access to CRUD operations on your schema. It is that simple. Until it’s not.

July 17, 2022

Privacy & Go

I’ve been doing a lot of work recently for a non-profit organization to help my local community deal with private school tuition. The main reason I became involved was due to a very specific requirement about the system. A large number of the potential donors and participants did not want their private and personal financial information to be visible to the administrators and others. We are not talking about actual PII or “sensitive” information. None of the information here could actually be used to steal or harm our userbase. This is just information like how much they may annually. The basis of the program is that no family should have to pay more than 20% of their net income towards to tuition. They would pay 1% of their net income and be eligible to have the organization supplement what they pay. The focus of this article is the design decisions I made and why I made them. For more information about this organization you may visit https://ahavaschinam.org

April 05, 2020

AWS Cognito & JWT

Recently I had to design and implement a solution that used a third-party user management system for authentication. I decided to use Amazon’s Cognito service, more specifically the User Pool aspect. The third-party service was able to work with SAML, and so does Cognito. Cognito’s output that you use is a JWT object. The backend system is written using Java 8 and Spring Framework and Spring Security.

June 29, 2018

Blockchain Smart-Contracts

I’ve been playing around with blockchain for non cryptocurrency. The smart-contract design is very intriguing as a true means to defining business contracts. I see a future where you have software engineers that specialize in building complex business contracts.