DEV Community

Discussion on: Future of backend development

Collapse
 
_hs_ profile image
HS • Edited

Two points missing:

  1. Data problems recently
  2. Cost

Microservice and over logging in cases even without microservice architecture leads to harder to remove data. Even if you delete user data like images, DB records and what else, they stay in backups, app logs, network logs... So you see the point a lot of GDPR issues lately and such things. It might revert to having less logging and less "microservice" approach. Especially DB per microservice approach where some companies have thousands of sercices = thousands of DBs. But you do have to agree to terms & conditions when using software so I might be badly wrong about this one.

It's not cheap setting up microservices that are well logged, message drivent etc etc. Even serverless for that matter. It looks cheap. It's not. Ever tried "renting" Kinesis, Event Grid/Hub, or setting up Apache Pulsar or Apache Kafka and checking how much price goes up? I did and my case was it's not easy to have unless you have money. A lot of events happen, lot of stuff stored. Try having to build amazing system with budget meant for less than a simple blog :D. I'm a bit blowing it out of proportion but 2000$ per month cost is simple development environment for things I do. And it's something I smashed together to have less services running around and using free subdomains and load balancer from cloud providers. Now imagine what happens when I split it up in at least 10 APIs and each has it's own full blown database. Not gonna happen, I'll keep it for now "API driven architecture" where I have services accessing same DB server even same database on that server until we figure out stuff with this. Paying for providers that would lower the cost per hour seams like 2x the price as they charge for backups, licenses for support and such, where I set scripts to backup full DB disks and just cry afterwards.

So no, I don't think backend will be "vanilla". Imagine multi tenant systems running thousands of users for each tenant. You create each user in DB? What if, as in my case, users can cross jump tenants? How do you deal with access rights in DB when using something like OAuth2 and it's roles? You check the roles from token or ask the service to decide weather user has access rights for something usually. How do you fit in DB here or even infrastructure, do you update OIDC token with roles and then have all DBs for all microservices update user access? Many cases where it can't happen. I think this was all mainly good for small to mid sized projects. Massive amount of software is still monolith and with all the effort cannot be replaced with micro services not because "it's tightly coupled" or bad architecture but because it's a domain that fits well with having everything so connected it makes no sens to split it. If you have no class makes no use for you to be able to still drive a car there and wait. Why would you do it? Wait until classes are available back again? A lot of people have been reverting back to monolith or switching to "API approach" where they don't follow all the rules of microservices nor have to have ESB as in SOA.

Just mine point of view on it from other peoples experiences but also mine.