3 ms·
The hype was cooled down once companies realized "they have more microservices than actual users" Was never obsessed with "event-driven" distributed systems us
by adeptima 2y ago
The hype was cooled down once companies realized "they have more microservices than actual users"
Was never obsessed with "event-driven" distributed systems using message queues.
The major issue is to keep syncing state between services.
Quite for a long time used to get decent results with simple golang and postgres scripts to distribute work between workers on multiple bare metal machines
Took ideas from projects similar to MessageDB
https://redis.io/docs/latest/develop/data-types/streams/ https://redis.io/docs/latest/develop/data-types/streams/
CREATE TABLE IF NOT EXISTS message_store.messages (
global_position bigserial NOT NULL,
position bigint NOT NULL,
time TIMESTAMP WITHOUT TIME ZONE DEFAULT (now() AT TIME ZONE 'utc') NOT NULL,
stream_name text NOT NULL,
type text NOT NULL,
data jsonb,
metadata jsonb,
id UUID NOT NULL DEFAULT gen_random_uuid()
);
along with Notify
https://www.postgresql.org/docs/9.0/sql-notify.html https://www.postgresql.org/docs/9.0/sql-notify.html
or polling techinques
Redis Stream here and there worked well too
https://redis.io/docs/latest/develop/data-types/streams/ https://redis.io/docs/latest/develop/data-types/streams/
Another possible alternative can be "durable execution" platforms like Temporal, Hatchet, Inngest mentioned on HN many times
- Temporal
- https://temporal.io/ https://temporal.io/
- https://github.com/temporalio https://github.com/temporalio
- https://hn.algolia.com/?dateRange=all&page=0&prefix=false&query=Temporal.io&sort=byDate&type=comment https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...
- Hatchet https://news.ycombinator.com/item?id=39643136 https://news.ycombinator.com/item?id=39643136
- Inngest https://news.ycombinator.com/item?id=36403014 https://news.ycombinator.com/item?id=36403014
- Windmill https://news.ycombinator.com/item?id=35920082 https://news.ycombinator.com/item?id=35920082
Biggest issues I had with workflow platforms - it requires a huge congnitive investments in understanding SDKs, best practices, deciding how properly persist data. Especially, if you optout to host it yourself.