164 karma · joined April 8, 2011
Hope OpenAI figures this out because quality has been their biggest moat up until now.
Our mission is to build the data backbone for modern businesses. Clearbit is built by a team with backgrounds at Stripe, Twitter, Google, and Heroku. We've come together to transform the world of business intelligence data and build a product companies love to use. We're VC-backed but growing with revenue.
Currently hiring across the team, but most in need of a sysops engineer with experience in AWS and K8s:
* SysOps Engineer: https://jobs.lever.co/clearbit/f29fbc8f-4a03-4a73-80fc-50389...
I’m sure Slack is using their vast resources and large team to solve these problems at this point, but it probably hasn’t been easy to create a horizontally scalable system from the early codebase, especially when the data model was designed for a single team of users.
But being able to put use either EKS or ECS for orchestration, and then schedule those tasks on either EC2 or Fargate (depending on compute needs), opens up a lot of options. You can start simple and grow as requirements become more complex—without fundamentally changing the deployment artifact. That was the promise of containers originally, so it's nice to see it play out.
But the concept as it applies to HTTP APIs is a great one that I think could have a broadly recognized implementation. Whether folks start adopting the "Idempotency-Key" header or some other approach, having awareness and maybe even a standard could be great.
We use similar tokens in our API for idempotency as well, though we called them nonces. Standardizing a bit on terminology and how to implement them properly would be really helpful.
If you configure ES to prioritize consistency somewhat (minimum_master_nodes), it prevents writes during a partition—but there's at least one "split" partition scenario where even minimum_master_nodes doesn't prevent inconsistent writes. If you configure ES to prioritize availability during a partition, it isn't consistent. Remember, ES doesn't claim to be consistent and doesn't even use any sort of consensus algorithm.
A well designed class interface can be turned into an HTTP (or socket) API easily enough. By the time you need to, you'll probably have the resources to monitor, scale and maintain the additional service properly.
I'm also be wanting a Sublime plugin, preferably one that can cycle the selection through tagged words and allow editing. I started hacking one out last night, but got stuck on the complexity of the plugin architecture. I'll update this if I ever get something working.