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.
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.
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.
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
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.
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.