Technology

TWM currently uses these:
  1. OS: AlmaLinux 9
  2. Web server: Apache
  3. Database: Apache Cassandra (for availability, performance and resilience)
  4. Frontend: PHP
  5. Backend analytics framework: Apache Flink
  6. Backend: Java
  7. Hosting: AWS

Tux image missing Apache_HTTP image missing Cassandra image missing PHP image missing Flink image missing Java image missing

Prototypes, past and present

  1. The current prototype website uses a 1 node Cassandra "cluster", which is also the web server in the AWS Sydney DC. There is currently no backend server installed.
  2. The previous prototype websites (2020-2021) consisted of a 2 node Cassandra cluster, one in Sydney and one in Ohio - using SSL encrypted data transmission. The Cassandra cluster used a RF of 2 and a CL of LOCAL_1. These nodes also hosted the relevant web server for the local Cassandra instance. There was no load balancer. There was another VM dedicated to the backend processing with Flink. Flink required a larger backend server, so it ran only when there was data to process.
  3. The TWM prototype websites implemented some configuration choices that would - for a production website - be: poor, unwise or exceedingly dangerous. These choices were made to save (TWM) money. However, scaling up and out would be trivial due to the technologies chosen.
  4. Some history and concerns for the future:
    1. AlmaLinux 9 replaced CentOS 8 after it was unexpectedly and brutally murdered.
    2. When Blink effectively took over, continuing to use Flink became intractable, so the backend will likely be rewritten to use Spark.
    3. The Cassandra PHP driver is now in maintenance mode.

The Sordid Details

  1. TWM is prototype, not a product.
  2. For now, please do not enter any personal data. Please enter only fictitious information.
  3. TWM has not yet made any attempt to comply with any data protection/privacy legislation (e.g., GDPR). But that shouldn't matter at this stage because only fictitious test information should be entered while TWM is a prototype.
  4. TWM was developed in the spare time of one person who is working full time doing unrelated things.
  5. TWM was not created by a website developer. But, rather than spend a lot of time learning to be an adequate website designer, TWM's approach is to display some basic functionality that's (hopefully) useful, and eventually engage a real website designer. Some known issues are:
    1. The web browser "back" button behaves differently - depending upon the choice of web browser.
    2. Appearance: layout, color choices, etc. should really be done by someone who knows about this stuff.
  6. There aren't any known bugs at the moment. Help exterminating future ones will be most welcome.
  7. There is only one code base for all TWM websites. The nature of each TWM website is determined entirely by the configuration of the "metadata" (i.e., categories, items, translations, etc.) stored in the database.
  8. Should any of the features, ideas, design choices, etc. in the TWM prototype code prove to be to be unfortunate, foolhardy or even downright dangerous, TWM hopes that people will point these out in a calm and helpful way. Constructive feedback on the TWM code - including criticism - is, of course, welcome.
  9. It seems inescapably inevitable that robust differences of opinion will emerge about the configuration of particular TWM websites. TWM will assiduously avoid taking part in heated discussions about what configuration is appropriate.