3
wojtek322
73d

So my company is kinda stuck in the old ways and rebuilding some systems. For context, a department is still using Lotus 1-2-3 and our main source of income still relies on IBM AS/400

Lotus 1-2-3 was a very very popular spreadsheet program created in 1983 and last updated in 2002 and not longer sold since 2013

AS/400 was created in 1988 and discontinued also in 2013. This still is very very popular

You might ask yourself how we process new incoming data from our suppliers? Web APIs didn't even exist back then

If something breaks, which is daily, colleagues have to manually go through those files and fix stuff. We blindly trust the data. If a supplier suddenly misstyped the price of a product (like a dishwasher, computer, ...), we are selling that product at that price. No questions asked

But since we deal with quite a lot of data on a database that saves every database changes. It is rather heavy to get the data and our database is just build wrong. We have our own APIs where our customers (our customers are traditional stores / webstores) can retrieve these data.

We used to have no limit on usage it but it quickly brought down our production database by standard use.

So the senior developer only allows API requests to happen between 2AM & 6AM and each customer can only do 10 GET requests. If they need more, they'll have to wait a day more xD

Since multiple stores rely on our data and we manage the inventory for different stores. All stores have to know what our stock is. They, in the end, don't want to sell a product that is not longer in-stock
So we have a websocket where they can listen without filters so that means:

1) Every store gets all events and they have to filter themselves. So if that store does not sell blenders, they'll have to simply ignore all events related to blenders.

2) All orders are public, this means they can listen to the orders that competitors are placing

3) If they have an internet outage for a long time, only so many events are queued for their client till they reconnect so they will have dataloss till they can sync the next morning

Idk what smells worse, this code or sürstromming.

Comments
  • 2
    I work for a trucking company and we still have AS/400s running RPG code. I'm on a project to replace a lot of it, but they're still adding features to the old code at the same time.
  • 0
    Lotus 1-2-3 in production is a genuine "respect the survivor" moment. The real pain in those rebuilds is usually the file sprawl, not the logic. When I had to tame a pile of legacy files I leaned on node_file_manager_server (self-hostable file manager) just to get one sane place to browse and move things - beats spelunking through shared drives by hand.
Add Comment