3 ms·
Well, microservices is the new buzzword. Sadly most people who venture down this path do it using technology they already know: HTTP and REST with JSON even tho
by mickeyp 12y ago
Well, microservices is the new buzzword. Sadly most people who venture down this path do it using technology they already know: HTTP and REST with JSON even though, once you have a lot of services, that adds up to a lot of overhead.
But ignoring the protocols used for a second, another major problem I see with a lot of microservices architectures are the complete lack of transparency to the operations team or developers once you spin up the system.
What happens if a request gets stuck somewhere in the pipeline? Who will know about it? If it's HTTP REST and the request times out owing to poor request timeout tuning then you have to cascade that failure up the propagation "chain" to the original caller -- something a lot of projects fail to do properly.
Security, as you mentioned, is another bug bear. Sure you log in to the "login service" but do you pass a token around with each request -- again, a lot of teams just superficially add this to the front-end facing service(s) only.
Debugging and logging is really difficult to pull off well. The best I've seen was traceable logging that carried over between microservices by fastidious use of "log namespacing" and timestamping to ensure that server time drift didn't screw up the ordering over time.
Bleh. It's just hard to get right and working but because it's such an easy thing to get started with most don't notice these things until it's too late and you're too invested.