21 ms·
Anything can be a message queue if you use it wrongly enough
- deleted 3y ago[deleted]
- h2odragon 3y agoWhat could be worse than IPv6? this Someone submit it as "IPv8" immediately.
- ranger_danger 3y agoIPv9 is already a thing
- h2odragon 3y agoShould this be IPv13 then?
- TobTobXX 3y ago> What could be worse than IPv6? IPv4? But seriously, I appreciate that the blog was written using IPv6, not some other old and deprecated legacy tech.
- XorNot 3y agoThis is the best worst thing in software that I have ever seen. I love it so much.
- ranger_danger 3y ago[flagged]
- throw-4e451c8 3y ago[flagged]
- deleted 3y ago[deleted]
- NoraCodes 3y ago[flagged]
- proto_lambda 3y ago[flagged]
- _dain_ 3y ago[flagged]
- KaiserPro 3y agoDon't fear the furry. Embrace your inner 6ft anthropomorphic wolf thing, its not going to kill you. (well not unless you get heat stroke, furries die in hot convention centres people. )
- ruffman 3y agoI think there are more things worth complaining about, rather than about this content specifically. Hopefully you enjoyed the article though.
- JoelMcCracken 3y agoThis is the first hn headline that I can remember actually making me laugh out loud. Bravo.
- sitkack 3y agoI initially expected a horrible amount of flamewar tinder, but it is an Overton Window expanding Art Project and I love it! The Cardio rate control library is cool, https://pkg.go.dev/within.website/x/cardio https://pkg.go.dev/within.website/x/cardio this library would be a great problem for using a neural net to model a PID loop. https://www.semanticscholar.org/paper/A-Design-of-FPGA-Based-Neural-Network-PID-for-Wang-Li/a25682a60e13feea3e3ee6200e96e6650b7ca4b2 https://www.semanticscholar.org/paper/A-Design-of-FPGA-Based... https://www.semanticscholar.org/paper/Self-Tuning-Neural-Network-PID-With-Dynamic-Control-Rodr%C3%ADguez-Abreo-Rodr%C3%ADguez-Res%C3%A9ndiz/f332ab78d9e3e52f780827d20a573ca9d56c7430 https://www.semanticscholar.org/paper/Self-Tuning-Neural-Net...
- mtlmtlmtlmtl 3y agoI love this! Reminds me of Harder Drive by Tom 7: https://youtube.com/watch?v=JcJSW7Rprio https://youtube.com/watch?v=JcJSW7Rprio It's better to go in unspoiled so I won't reveal any details.
- KineticLensman 3y agoSpoiler: "we can of course ignore air resistance because chainsaws cut through the air like butter"
- Sniffnoy 3y agoI'm going to have to spoil some of it to point out that part of what he's done is reinventing the idea of delay-line memory, although he makes no mention of this: https://en.wikipedia.org/wiki/Delay-line_memory https://en.wikipedia.org/wiki/Delay-line_memory ...of course if that's all there were to it it wouldn't be interesting, but I won't reveal what the rest is as per your suggestions. :)
- mtlmtlmtlmtl 3y agoTrue, I suppose. Though the implementation details are certainly refreshing :)
- loeg 3y agoTl;dr: S3-based tun/tap virtual network device.
- KaiserPro 3y agomy dear child, the fun is not the destination, the fun is the slow decent into madness to get there. For other people: don't read the summary, read the whole thing. its a work of art.
- revskill 3y agoWait, to understand all of the SRE things, one might need another 6 months.
- xena 3y agoIs this a challenge.
- revskill 3y agoI'd love to learn from you more if you don't mind.
- h2odragon 3y agoA "WTF are you even talking about" glossary could enhance the educational value of this stunt some more. Not that it ain't perfect like it is.
- xena 3y agoSo I can design it, what would such a thing look like?
- h2odragon 3y agoFind someone who reads this and goes "i want to learn what all those words meant." The explain could be done amusingly too, i think. dunno if the effort would be worth it; but I'm thinking of people like me who read th eBOFH stories and decided they needed to learn more, to understand them properly. "First hit free, kids!"
- Kye 3y agoSuch dark works from such adorable creatures. The nature of furry.
- disruptiveink 3y agoI'm not part of this subculture, but I honesty enjoy this type of idonsyncratic presentation which always was, and hopefully always will be part of hacker culture. The content is not only relevant and hilarious, but I'd much rather personal blogs like this keep being updated instead of seeing the the sterile Medium or LinkedIn Pulse versions, usually written to impress future employers. Zany visuals, doing things with your friends just because you can and writing up detailed accounts of it to share with everyone is the quintessential hacker culture. If Hackers' Cyberdelia was set in the 2020s, no doubt Mara would fit in.
- xena 3y agoAuthor here. Thank you for liking this. One of the most amusing things is that doing this zany visuals/detailed writeups/unabashed character in my writing actually makes me more impressive to future employers than any sterile LinkedIn posts ever will. I estimate that at this point if I wanted to get hired I could literally post a banger like this, add a banner to it halfway in that says "by the way, I'm looking for gainful employment, if you want someone doing DevRel that writes like this and gives talks like [link], please get in contact" and I could probably get a job in a week or two. I want to keep hacker culture alive by not accepting the gentrification of it. Hacker culture is queer, neurodiverse, furry, weaboo, and more. As a philosopher of the arts, that is the kind of culture I want to create more of. Not platitudes on LinkedIn. I want to create the kind of culture that celebrates art for the sake of art. I may be "cringe", but I am free.
- KaiserPro 3y agoI am totally going to start putting cartoon section summaries in my technical docs.
- 3y ago
- pavlov 3y agoThe only thing worse would be this “on the blockchain.” On second thought it seems likely that some charlatan has already years ago raised a couple of millions in an ICO for such a project. “We’re making the entire Internet web3-compatible!”
- Codesleuth 3y ago> What if there was a way you could reduce that cost for your own services by up to 700%? How can something be reduced over 100% What is it that they actually mean here?
- Kye 3y agoLike any good extended comedy bit, you have to read to the punchline to get it.
- Codesleuth 3y agoAh, good call. I'll continue...
- hdjjhhvvhga 3y agoI believe they meant "7 times", so around 85%.
- deleted 3y ago[deleted]
- whartung 3y agoI know of a Famous Large Company that used email as their message queue to synchronize the data across two of their large systems. It's a perfectly apt message queue, just a bit heavyweight. But if it's "light enough", it comes "for free" with many OSes.
- KaiserPro 3y agoA famous financial news paper used an FTP server as its kafka "fan in" node. It was so old that the 1u case started to droop in the middle. (it was an sparc something or other with real SCSI ultra 320 drives in them)
- doubled112 3y agoEmail is a message queue in the most literal of senses, isn't it?
- xena 3y agoYes, it's actually somewhat of a decent (if cursed) message queue for many usecases too. Not to mention the debuggability (you already know how to use an email client).
- Ozzie_osman 3y agoYou could use Slack, too.
- flir 3y agoEmail keeps everything on-prem.
- marcosdumay 3y ago> if cursed As long as you keep it internal-only, get a reliable server that doesn't do any anti-spam shit (AKA, nothing from MS or any other large company), doesn't use some unreliable proprietary database (again no MS), and have a reliable journaled disk, your only important failure mode will be losing disks. That's an easy failure mode to deal with.
- ipython 3y agoGiven that Corey Quinn is involved, I’m surprised that route 53 isn’t included somewhere (or maybe it is, I’m still reading through it)
- xena 3y agoI was gonna add Route 53 (to have each node set its own DNS record), but I'm saving that for part 2. Be afraid, part 2 is coming.
- Veserv 3y agoVery funny. Also, you can actually make it cost competitive if the object you store is the last n milliseconds of packets instead of one packet each. So, instead of incurring two API calls per packet, you incur two API calls per minimum buffering time. If S3 is zero-rated for any ingress/egress then you get “infinite” bandwidth for 4.22$ * 3 (for the active case) = 12.66$ a day if you are willing to accept 500 ms minimum latency, or ~600$ a day at a more reasonable 10 ms. If you are saturating even just a 1 Gb link for a whole day that is ~10,000 GB which would be ~700$ via the blessed channel, so you could very well come out ahead. You could do even better if you out-of-band signal the readiness so you do not need to poll while idle. Then you only incur a cost while actively transmitting so as long as you average 1 Gb/s on the channel you should be coming out even or ahead with minimal latency impact.
- derefr 3y agoThis isn't theoretical; many companies do PostgreSQL async 1:N physical replication, by using e.g. https://pgbackrest.org/ https://pgbackrest.org/ to have the primary push WAL segment files (a.k.a. "the last n milliseconds of packets" in the write-ahead log) as objects to S3. All the read-replicas then independently discover the new objects in S3 as they become available; fetch them; and replay them. > You could do even better if you out-of-band signal the readiness so you do not need to poll while idle. S3 and its clones have "object lifecycle notifications", where you can be informed by a push-based mechanism whenever a new object is put into the bucket. But — what do you have to do, to get these notifications? Subscribe to a real message queue, that S3 puts these notifications into. So using it here would be somewhat cheating ;)
- candiddevmike 3y agoCan you failover/promote using pgbackrest?
- dikei 3y agoNot really, but you can use Patroni for that, which automatically promote one of your replica to master, it can also create the replica from WAL archive in S3 using wal-g/pgbackrest.
- cratermoon 3y agoThis is astoundingly well-written and informative. It's the sort of thing I come here for. It's also engaging and charming in a way rarely seen in tech writing. I like that they started out by talking about $0.07/G cost and went through the whole exercise before pointing out what immediately came to mind for me when they started pushing bytes in and out of S3.
- KaiserPro 3y agoThis, this is what the internet used to be like. ok, what the good parts of the internet used to be like. I also love that its highlights an AWS dark pattern. more, more I say.
- account42 3y agoReally? This is the old internet to you? > <Cadey> Hello! Thank you for visiting my website. You seem to be using an ad-blocker. I understand why you do this, but I'd really appreciate if it you would turn it off for my website. These ads help pay for running the website and are done by Ethical Ads. I do not receive detailed analytics on the ads and from what I understand neither does Ethical Ads. If you don't want to disable your ad blocker, please consider donating [snip] or sending some extra cash to [snip] or [snip]. It helps fund the website's hosting bills and pay for the expensive technical editor that I use for my longer articles. Thanks and be well!
- tschumacher 3y agoI once used a MySQL database as a replacement for a message queue. This was the easiest solution to implement since all the servers were already connected to the database anyways. A server would write a new row to the table and all the servers would remember the last row they had already seen. Occasionally the table is cleared. I'm sure there are some race conditions in the system but its only purpose is to send Discord notifications when someone breaks a highscore in a video game, so its not really critical. It's still working that way today.
- _yb2s 3y agoWhy not sqlite with a lockfile? /s
- renewiltord 3y agoSegment did so quite successfully https://segment.com/blog/introducing-centrifuge/ https://segment.com/blog/introducing-centrifuge/
- pinkcan 3y agoevery half year or so I remember centrifuge, and get a little sad they didn't write more about it
- hu3 3y ago> We decided to store Centrifuge data inside Amazon’s RDS instances running on MySQL. RDS gives us managed datastores, and MySQL provides us with the ability to re-order our jobs. Interesting. Thanks for sharing
- bob1029 3y agoI am doing the same with SQL Server. The messages table is more of a bus than a queue in our case (columns like ReplyToId, etc). Using it for RPC communication between cloud bits. Much cheaper than Azure Service Bus and friends.
- deleted 3y ago[deleted]
- rootw0rm 3y agoThe title of this article is what malware authors say every day =)
- mikece 3y agoAs a junior dev I used folder pairs (to_process and processed) as a way to move messages between loosely coupled systems with file system watchers picking up new files in the to_process folder. Very light weight, got the job done, and was told it was in production for over a decade (even after better best practices came into use).
- derefr 3y agoFYI, this is an old Unixism called a "spool directory" :)
- WeAddValue 3y agoFYI, which was probably derived from the old mainframe-ism which had spooling before Unix was written. See https://en.wikipedia.org/wiki/Spooling https://en.wikipedia.org/wiki/Spooling
- derefr 3y agoLiterally spooling message-filled tape onto a tape reel! I never even thought about that. On the topic of message queues, I wonder if anyone ever designed a mechanical, asynchronous hardware IPC mechanism based on tape. Imagine: an endless-loop tape that stretches between a "sender" tape-drive on one machine, and a "receiver" tape-drive on another machine; with each tape drive locally tensioning the tape as it passes through, but letting it hang slack outside the drive; with two tape-width buffer boxes in between the two drives, for taking up the slack; and where each tape-drive has a strain gauge on its input-end capstan. With this design, you'd never need to seek the tape (backward, at least) — the receive head would just read the tape forward at whatever speed it could until it ran out of slack in the tape (i.e. blocked on read); and the send head would write the tape forward at whatever speed it could until it ran out of slack (i.e. blocked on write.) The tape itself would be a literal, physical ring buffer.
- wolfgang42 3y agoWestern Union built a store-and-forward message switching system in pretty much exactly the way you describe (but with paper tape rather than magnetic): https://en.wikipedia.org/wiki/Plan_55-A https://en.wikipedia.org/wiki/Plan_55-A
- andrewstuart 3y agoCould someone explain this please?
- xena 3y agoHere's the key paragraph in the article: > In Linux, you can create a TUN/TAP device to let applications control how network or datagram links work. In essence, it lets you create a file descriptor that you can read packets from and write packets to. As long as you get the packets to their intended destination somehow and get any other packets that come back to the same file descriptor, the implementation isn't relevant. This is how OpenVPN, ZeroTier, FreeLAN, Tinc, Hamachi, WireGuard and Tailscale work: they read packets from the kernel, encrypt them, send them to the destination, decrypt incoming packets, and then write them back into the kernel.
- wolfgang42 3y agoThis is one of those articles where the journey is far more interesting than the destination. (Edit: this comment made more sense when it was replying to a different complaint about the article; the parent comment seems to have been edited in the interim.)
- ignoramous 3y agoSetup a TUN/TAP device, which is a file one can read (egress packets) / write to (ingress packets). Setup appropriate ip routes. Read (egress) packets from the TUN/TAP device. Serialize them, assign sequence numbers, and upload them to S3. On the recieve side, poll for newer objects (packets) in S3. Write them to your TUN/TAP device. --- Here, the TUN device is a router using S3 as gateway.
- dikei 3y agoSo the premise of the problem is the need to egress traffic to the internet from a private VPC, without using an expensive NAT gateway. The solution is to do NAT manually by having an EC2 instance in a public VPC, and tunneling traffic from the private VPC through that instance. The meat of the article is how to create that tunnel using S3 for data transfer instead of using a more traditional VPN service.
- devdiary 3y agoBeen there, done that
- cosmolev 3y agoI think we can safely expand it even further: Anything can be a anything if you use it wrongly enough.
- atmavatar 3y ago> The bytes are stored in the cloud, which is slightly slower to read from than it would be to read data out of the heap. Given latency and bandwidth differences, that's like saying that it's slightly slower to transport water by driving standard, 1-gallon jugs between the US east and west coasts than it is to transport it a few miles using a tanker truck.
- AceJohnny2 3y agothat's the joke.
- cosmolev 3y agoAt some point you can also discover it is Turing complete.
- xena 3y agoWait, are you saying that AWS S3 is turing complete? How the hell if so.
- xg15 3y agoToo late, already deployed to prod :)
- NotYourLawyer 3y ago[flagged]
- xena 3y agoIt’s unfortunate that you were offended by the cartoon shark in the programming article. You are entitled to your own preferences and expectations, but so am I. I have the right to express myself creatively and share my content with the world for free. I don’t have to please you or anyone else with my personal choices. Your feedback is noted, but please be more mindful and respectful of other readers who may like my work and the artists who were contracted to create the art in question. Thank you. One path to find peace is to kill the part of yourself that cringes rather than try to smother out others who are "cringe". Otherwise, there are plenty of cookie-cutter medium.com blogs and LinkedIn posts if you want something more to your standards.
- NotYourLawyer 3y agoK.
- camdenlock 3y ago> kill the part of yourself that cringes rather than try to smother out others who are "cringe" Cringing is a manifestation of shame. Shame can serve very useful social functions, even though it may not always be accurate. We should not completely deaden our feelings of shame any more than we should completely deaden our feelings of anger, or joy.
- account42 3y ago[flagged]
- Lammy 3y ago[flagged]
- jamest 3y agoThe satire in the title is reminiscent of how Firebase was born. We were previously working on a chat system called Envolve (https://www.envolve.com https://www.envolve.com), that was 'Facebook Chat for any website'. A game that was using us for in-game chat created channels, used display: none on them, and passed game state through the chat. We scratched our head, asked them why, and learned they wanted to focus on the frontend, not to deal with realtime message passing. This led us to create a 'headless version' of our chat infra (re-written in Scala) that became the Firebase Realtime Database.
- bombcar 3y agoThis is an important lesson - if someone is using your tool in unexpected ways don’t just shut them down; there’s likely a business case that could be identified and specialized in.
- agumonkey 3y agoI saw the opposite happen so often and every time it's very painful to see people have knee jerk reaction instead of thinking outside the box.
- Shorel 3y agoThey don't even need to think. Just avoid the "not invented here" syndrome.
- dylan604 3y agoNobody wants the product you want to make. They all want you to make the product they need, and will do things the devs of your product could never imagine with your product.
- b33j0r 3y agoIndeed. Tangentially, there is another side to the coin. The antithesis of this is the contract model, when a client comes to you and asks you to make something specific, rather than describing what they need. In this case they are almost always wrong. They’ll rarely admit it unless you show them some amazing alternative, though. Requirements = a set of problems to be solved. More often you get handed a diagram of a 12” tall Stonehenge sketched on a napkin with exceeding confidence that it will be 12 feet tall. Then they yell at you for doing what they said.
- artem_dev 3y agoDigitalOcean had a nice blog post on this "From 15,000 database connections to under 100: DigitalOcean's tale of tech debt" https://www.digitalocean.com/blog/from-15-000-database-connections-to-under-100-digitaloceans-tale-of-tech-debt https://www.digitalocean.com/blog/from-15-000-database-conne... they used MySQL as a message queue and migrated from it.
- hu3 3y ago> ...it was simple and it worked – especially for a short-staffed technical team facing tight deadlines and a rapidly increasing user base. > For four years, the database message queue formed the backbone of DigitalOcean’s technology stack. The lesson I got from that article is that a database messaging system got them very far and was simple.
- jheriko 3y agomeanwhile in the minds of ZeroMQ devs...
- jheriko 3y ago[flagged]
- morelisp 3y agoGreat point, let's just rename it ar.
- wolfgang42 3y agoIt’s not clear to me which bit you’re complaining about—I assume it’s either that the format is still used and/or that name describes an obsolete use. But the former seems perfectly reasonable if it still serves a useful purpose, and the latter largely irrelevant (these days a “tarball” is generally as an arbitrary word, like “zip file”); so I’m curious to hear your perspective on what the problems are.
- retrocryptid 3y agoSadly, they fundamentally misunderstood the "everything is a file" paradigm of *nix. It's not that everything is an extent of octets, it's that everything has a directory entry so C programs can use the open call to create a file handle. It might be more appropriate to say "Everything looks like a file in the file system and most every operation on a thing represented by a directory entry goes through a filehandle."
- sam1r 3y ago>> Read time in minutes: 40 I wonder if this part is satire, if so, how come? I definitely feel it should be much less.
- xena 3y agoMy read time estimate code is here: https://github.com/Xe/site/blob/aa3608afa6c62695ca0ab139f82352dd8e97994e/src/post/mod.rs#L151-L159 https://github.com/Xe/site/blob/aa3608afa6c62695ca0ab139f823... I've been trying to play with the constants over the years to make the read time estimate more "accurate", but it's a tough nut to crack in general. So I can go over my numbers more accurately, how long did it take you to read it?
- ignoramous 3y agofwiw, it took 5m to read. Nb: I was already familiar with a lot of the terms in the post (partly because I've already experimented relaying IP over Cloudflare's DurableObjects instead of S3), and skipped the dialectics.
- jerf 3y agoEstimate includes the additional latency you will experience while downloading the post through the mechanism described in the post, which is the only true way to read it.
- peter_d_sherman 3y ago>"Access to S3 is zero-rated in many cases with S3, however the real advantage comes when you are using this cross-region." Or cross-Country... as in two Countries that are geoblocked from one another... >"This lets you have a worker in us-east-1 communicate with another worker in us-west-1 without having to incur the high bandwidth cost per gigabyte when using Managed NAT Gateway." Simplified algorithm for bypassing geoblock via the above method: 1) Select a cloud storage provider (could be any cloud storage provider or shared persistent storage platform; doesn't necessarily need to be Amazon/S3) that works or does business in two countries, Country A and Country B, where normal IP traffic is geoblocked between Country A and Country B. 2) Use shared cloud storage objects/buckets/rows (call them whatever you will, "keyed persistent storage discrete thingies" for lack of a better term!) as the article suggests, to emulate IP traffic between user A in Country A and user B in blocked country B... 3) Combined with a P2P or other front end app that knows how to use this method of communication (along with code stubs, such that people could customize it to their own cloud storage provider or platform) if/when normal country-to-country IP communication is blocked for whatever reason (zombie apocalypse? <g>) could make a powerful future P2P communications tool, for lawful purposes... Anyway, great article!
- d0gsg0w00f 3y agoI always thought it would be fun to host a Rube Goldberg competition for systems engineering. Whoever could accomplish a simple task with the most ridiculous system would win. Something like: read the 54th line of this file hosted at xx address. Then a submission could look like: 1. FTP a file to a server with the address. 2. the server reads the file and spins up a VM. 3. The VM polls an endpoint to download code to pull the address. 4. The code downloads the file and splits it into a single file per line. 5. A script loads all the files into an array and accesses array[53] to get the answer. ...you get the idea
- Nextgrid 3y ago> Whoever could accomplish a simple task with the most ridiculous system would win. See also: * Microservices * "Web scale" * Kubernetes * Cloud computing
- deleted 3y ago[deleted]
- quickthrower2 3y agoUse Nix to install Conda to install NVM to install Node to install …
- myself248 3y agoI used to host a competition called Anything But Ethernet. (You could use ethernet hops, they just didn't score points, so say you had some ethernet-to-whatever bridge, only the 'whatever' segment would count.) Over the years, we saw physical proof that a T1 circuit would in fact run over barbed wire, we had a human-in-the-loop following a DDR-esque stream of arrows to stomp on a pad that encoded data from one hop to the next, we had a writable RFID tag stuck to the front bumper of an R/C car that would drive back and forth between readers...
- d0gsg0w00f 3y agoThat's awesome. Was this part of a company? University? I've brought the idea up to coworkers but nobody wants to waste extra cycles for something this dumb.
- headPoet 3y ago"anything stored in that pointer to memory you got back from malloc() is stored in an area of ram called "the heap", which is moderately slower to access than it is to access the stack." Is this true, or a myth? Ignoring the allocation cost and access patterns making cache misses more likely, surely memory is just memory
- xena 3y agoI'm pretty sure this is still the case. I'm not sure how cross-platform that assumption is (it won't work in Go where it has heapstacks I don't think), but classically yeah the stack is put is slightly faster memory with fewer access barriers.
- comex 3y agoI believe that’s inaccurate, at least on a modern CPU. The bookkeeping for the stack is faster, since ‘allocating’ and ‘deallocating’ is just subtracting from and adding to a register. And the area of the stack in active use at any given time is usually tiny (well under a kilobyte, even though the full stack is usually several megabytes), so it’s likely to stick around in L1 cache. And return addresses on the stack get special treatment by the branch predictor. But other than that, it’s treated the same as any other memory.
- twoodfin 3y agoBy definition, everything on the heap got where it is dynamically, so the minimum number of pointers to chase to find it is 1. In contrast, what’s where on the stack can often be (and often must be) known statically by the compiler and accessed directly, even moved entirely out of memory and into a register. (It’s possible to do this with suitably constrained dynamic allocations, but the optimization is much harder.)
- cdcarter 3y agoSome architectures (e.g. the 65816, the 6502's "big brother" used in the Apple IIgs) include stack pointer relative addressing modes, which will complete the memory read and return data faster than the same instruction with a full address encoded.
- GLaNIK 3y ago[flagged]
- xena 3y agoI was hoping someone would notice this by arguing about my pricing estimates in the arguments, but nobody did so I'm gonna spoil the surprise: if you have JavaScript enabled your browser will render slightly different prices if you view this post from Hacker News. This will persist to when you visit from not-Hacker News too, just so you don't notice the difference. The prices range from 0.8x to 5x the ones I figured out in the AWS calculator. If you want to see how I did it, view source and search "gaslight".
- mkl 3y agoUm... why?
- xena 3y agoBecause I thought it could be fun if people took the bait lol
- stingraycharles 3y agoNot really my type of humor to begin with, but having to explain the "joke" to the community you're trying to bait because nobody cared really ruins it.
- butterNaN 3y agoI mean, it's better than going unnoticed
- candiddevmike 3y agoIf you have to point out how clever you are, you're probably not as clever as you think you are
- tpxl 3y agoIntentionally misleading your readers is exceptionally poor writing.
- JenrHywy 3y agoThe title reminds me that, in a previous life, our "architecture" team implemented a service bus using Lotus Notes email.
- svilen_dobrev 3y agoi used Couchdb as "RPC" pseudo-HTTP request-response transport layer, essentialy two queues, both ways. Especialy useful for mobile devices when connectivity is a random thing. Hugely Simplifed both client and server - Let the db handle all the multiplication, connections, switch on and off, timeouts, retries, delays, repeats, etc.
- hashhar 3y agoWow, this reminds me of https://www.youtube.com/watch?v=JcJSW7Rprio https://www.youtube.com/watch?v=JcJSW7Rprio (Harder Drive: Hard drives we didn't want or need - suckerpinch) Impractical, yet possible ways to store data is an exciting satire genre for me now.
- koromak 3y agotom7 is a national treasure. Someday I'll have an idea as absurd as this.
- sitkack 3y agoI just had a flashback of creating a forwarding-buffer-queue on memcached, a complete abomination but it was able to drastically reduce the load on the endpoints that saved game progress in a casual game. It updated or created an entry for each call. But if a buffer was already in the queue, it would write the most recent one into the existing slot. This had the effect of reducing the load by the multiple of the update rate. So if you had clients sending save game payloads every 30s and your queue depth is 2.5mins, then your write rate to disk is 1/5. I think. But memcached wasn't Redis, this was pre-Redis, and memcached could have evicted any of those keys at any time. We gave it lots of space, it never GCd, we never needing to fix it. The game slide from above the fold and wasn't fun enough to be viable long term. One of my proudest Scotty Engineering moments.
- rejectfinite 3y agoI clicked the site and wow...