Architecture – The timer is triggered to scale

I'm looking for reference material / architecture / experience to make timer triggers or reminder systems true to scale.

A simpler question would be "How would you create the backend for Google reminders?".

I understand the delivery of the notification to customers. I'm looking for suggestions for timer management.

How would a notification be triggered for many users? Do you use threads? How do you maintain states?

Suggestions for creating timer trigger functions are also welcome.
Another related example would be "How would you create the functions backed up for timed lambda functions or azure functions?".

Access control – What are the security roles / levels for the architecture?

What security roles / levels do the systems in this architecture have with regard to information security and IAM in a sample system architecture for a business where different types of users access the company's web application and databases over the public Internet?

Is it reasonable to assume that these security roles / levels include system level, layer of transmission, application level and even "people", etc.?

Thank you very much.

Information Architecture – Tool for creating a large click dummy

To test a new design and to restructure a subsection on our website, we are working on a click dummy (hi-fi prototype with linked screens). We build it to do some user testing before opting for the IA. We're currently using Sketch – but linking and duplicating screens is very tedious.

Does anyone know of a better tool that can simplify the process?

Thank you so much!

Authentication – Architecture of OAuth2 Flow with an API and a static JS client

I create a very safe conscience application. (All applications should be safety-conscious, but these can contain a lot red Dates).

Suppose I use a Vue / React JavaScript Single Page app that authenticates to user login at Google:

  • There will be one Sign In With Google Button on the page.

  • This button takes the user to Google where the user of my website may not be able to access their resources.

  • Google redirects to a callback URL I sent to Google when I signed up for API access.

  • This callback should have a key that allows me to make another call to get an access token and a refresh token.

I have 2 main questions:

Suppose I have a Vue / React JavaScript SPA that calls an API for resources (compared to traditional server-side rendered Rails / Django / Laravel / etc sites), how does the forwarding flow work? Should I:

  1. Redirect to the static site that is running the second Ajax call to retrieve the access token / refresh token and then send it to the server?
  2. Forward to the API, which internally executes the second Ajax call, and store the data on the user in the database (or associated table) that forwards to the static site.
  3. Set up another microservice to authenticate and update the user object.
  4. Something else…

Once I've chosen a method to get the access token, the Vue / React app, when I visit my website, accesses the user object that gives them the access token. Where should I safely store the access token on the client side?

  1. Let the server set the access token as an HTTP-only cookie, as in JWT, but I have not read anything about it yet.
  2. I could save the access token to local storage, but that's not sure if the JavaScript could be on my site.

Architecture – Which tools should I use for a long-term, intensive 3D simulation?

I know my project is not a game, but many of the techniques I need to use to develop this application will include many of the tools used for advanced 3D and light rendering.

Specifically, I want to create an application that loads different hardware profiles for CRTs. These profiles are very extensive with parameters for region settings (eg, NTSC-US, PAL, etc.), screen mask specifics, electron beam length, vertical or horizontal hold settings, and many other options. In addition, the application requires various parameters such as the exposure time for each image that reflects the CRT output, as well as the camera orientation, the atmosphere refraction, etc. In other words, this is a rather complex project that simulates the internal physics of CRTs and external light emission.

I know this is not a game, but since I intend to enable a high level of historical preservation of analog devices through digital simulation, I need some guidance on what tools to use to write these types of applications.

For this question to be appropriate for this site, I specifically ask you if you would like to create a 3D game / project that would help you develop a similar project to mine that could potentially be compilable, updatable, and useful for decades. Come ?

Architecture – Design Unstoppable service

I developed one Windows Service to prevent the user from using the camera on a computer group. However, I'm trying to find a way to make sure the service is never deleted. I tried CanStop but the service was still deletable in the .NET property sc delete Not to mention that the registration is another possibility.

I know that it is not right to have an aggressive application / service. However, I want to know how to control a number of PCs so that there is a master and a client PC.

So far I have the following solution:

  1. set CanStop = false
  2. Monitor the service status of the clients from a master PC System.ServiceProcess
  3. Start the service if it was stopped remotely

For your information: I am not looking for a domain solution.


Architecture – What is the cleanest way to code for predictable client / server components?

Many classic games for which I have read the source code

if (clientside)
    // ...

or the same with serverside, The code is littered with it and it will be an extreme nightmare for testing. This is especially the case when the games I have looked at use global variables for the above, so testing goes out the window and I am lucky enough to be able to write tests for such things (hobby projects without time constraints! ). )

I have come to a point where I have to take care of it now (especially when I have to deal with predictions and actions, scripts, etc. in one plane). That's why I've been looking for solutions that people have developed for this issue, so it has been possible to make client-side predictions for some things while preventing the code from becoming a giant set of codes if scattered statements everywhere.

How can you best tackle this? I'm ready to trade some speed for clean code with good OOP. Is there a good example that I can learn from? Or am I stuck with garbage? if (client/serverside) all over?

Ideally, I want to write the smallest possible code, write it as cleanly as possible, and have something that I can easily think about without much thought. "OK, what if Condition A, not B, C and D, not E" at Try to find out something.

I've tried to find out if there's a way to create a kind of common base class that shares all the code and then build a lot of it abstract Methods where either the client implementation or the server implementation perform their own tasks, but part of me is worried because I have not done so yet Yet I'm scared of wasting time on something that may be architecturally bad. This is mainly the reason why I post this.

In short, how can the code be created cleanest? Are there any examples or articles that I can learn from?

Note: This question is fundamentally different from the way you make predictions, without delays, etc., and as such, it's not about it (and I already know exactly what to do). It's about implementing such things that I can write a client that supports predictions, and server code that reduces the extent of duplication as much as possible.

Information architecture – paths sooner or later

Jabob Nielsen highlights the importance of philanthropic and hackable URLs in his article URL as a 1999 UI. Upgrades from 2005 and 2007 mentioning eye-tracking studies suggesting people are paying attention to URLs.

Another article by NNGroup, Navigation: You Are Here, states the following:

Well-chosen, human-readable web addresses are important for sharing, credibility, recognition, and recall. The web address of a page can be used to uncover part of the information architecture and to help contextualize the content.

I'm not sure how many times your users see the full URL instead of the link text, but I do not think there are any benefits in making links less meaningful.

For me personally, readable links are important, I assure more confidence in links with information fragrance. When I navigate in a linked documentation or linked wiki, I often hover over the link to see the URL in the lower left corner and see if I've visited or opened it. In this scenario, a human-readable URL is also offered.

microservices – Front-end to back-end communication in an event-driven architecture

The context:
I have two components. An event-driven back-end architecture with a broker publishing events. And a front-end customer.

The problem:
How should I connect the front-end client to the back-end?

Possible solutions:
One solution might be to use a proxy API to have the client send an htttp request to the proxy API, and then the proxy API will generate events, wait for the completion of all processes, and then respond to the front end Client returns.
Another solution could be the front-end to generate events directly, and when a required process is completed, the components of the front-end that are listening for the resulting events can be filled automatically.

I am not sure which approach is better and if there is another established method that I could follow. Could you please advise?

Architecture – Microservices and Stored Procedures

There is nothing that explicitly prohibits or opposes the use of stored procedures with microservices.

Disclaimer: I do not like stored procedures from a developer's POV, but this has nothing to do with microservices.

Stored procedures usually work with a monolith database.

I think you are making a logical mistake.

Stored procedures are decreasing nowadays. Most of the stored procedures that are still in use come from an older codebase that still exists. At that time, monolithic databases were much more common than at times when microservices became popular.

Stored procs and monolithic databases both come from old codebases, so you'll see them together more often. But that is not a causal connection. They do not use stored procs there You have a monolithic database. You do not have a monolithic database there They use stored procs.

Most books on microservices recommend one database per microservice.

There is no technical reason why these smaller databases can not have stored procedures.

Like I said, I do not like stored procs. I find it awkward and resistant to future maintenance. I think that distributing sprocs to many small databases further aggravates the problems that I do not already like. That does not mean that it is not possible.

Again, most books on micro-service architecture state that they should be autonomous and loosely coupled. Integrate the microservice closely with this technology using specially stored Oracle stored procedures.

On the other hand, the same argument can be made for the ORM used by your microservice. Not every ORM supports every database. The coupling (especially its tightness) is a relative concept. It's about being as relaxed as possible.

Sprocs generally suffer from tight coupling, regardless of microservices. I would generally advise against Sprocs, but not especially because you use microservices. It's the same argument as before: I do not think sprocs are the right way (in general), but that might just be my bias, and it's not microservices.

Most MSA books (which I read) recommend that microservices should be business oriented (developed with Ddd). Moving business logic to stored procedures in the database no longer works.

That has always been my main problem with Sprocs: business logic in the database. Even if it is not the intention, it somehow always ends like this.

But even here, there is this point of criticism, regardless of whether you use microservices or not. The only reason it looks like that is that microservices are pushing you to modernize your entire architecture and that sprocs are no longer so popular in modern architectures.