Compared to MongoDB it offers predictable performance, infinite scalability, outstanding stability, and tiny cost.\n\n
When using MongoDB at scale, you encounter all sorts of issues that are not advertised in MongoDB promotional materials. You get limited by the number of connections, not compatible drivers, and unexpected bugs in new releases.\n\n
With MongoDB, it's easy to get started quickly because it doesn't require you to think about data structure in the beginning. When you hit a certain scale you either spend months reengineering your DB or paying loads of cash to scale your cluster.\n\n
On the other hand, DynamoDB is much limited in its querying API, but that's a good thing. It's very hard to build a not scalable or low-performance database with DynamoDB.\nAlso, you get all the perks of native integration into other AWS services.","rawContent":"Compared to MongoDB it offers predictable performance, infinite scalability, outstanding stability, and tiny cost.\n\nWhen using MongoDB at scale, you encounter all sorts of issues that are not advertised in MongoDB promotional materials. You get limited by the number of connections, not compatible drivers, and unexpected bugs in new releases.\n\nWith MongoDB, it's easy to get started quickly because it doesn't require you to think about data structure in the beginning. When you hit a certain scale you either spend months reengineering your DB or paying loads of cash to scale your cluster.\n\nOn the other hand, DynamoDB is much limited in its querying API, but that's a good thing. It's very hard to build a not scalable or low-performance database with DynamoDB.\nAlso, you get all the perks of native integration into other AWS services.","publishedAt":"2021-11-05T21:32:29Z","commentsCount":1,"private":false,"upvotesCount":8,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":41270,"draft":false,"createdAt":"2021-11-05T21:32:30Z","decisionType":"tool","showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:107226592077181286.permissions","typename":"Permissions"},"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"}],"fromTools":[{"type":"id","generated":false,"id":"Tool:101231773854388643","typename":"Tool"}],"toTools":[{"type":"id","generated":false,"id":"Tool:101231773615579247","typename":"Tool"}],"link":null,"company":{"type":"id","generated":false,"id":"Company:101231721668834888","typename":"Company"},"topics":[],"stack":{"type":"id","generated":false,"id":"Stack:101231804536079030","typename":"Stack"},"services":[],"user":{"type":"id","generated":false,"id":"User:101232075734831667","typename":"User"},"rootComments":[{"type":"id","generated":false,"id":"Comment:107458548426189805","typename":"Comment"}],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:107226592077181286.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:107226592077181286.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"Stack:101231804536079030":{"id":"101231804536079030","imageUrl":"https://img.stackshare.io/stack/139820/default_52c5e71a6c75e79b6ffddc1778f6508efd28a8be.png","name":"Shelf","identifier":"shelf/shelf","path":"/shelf/shelf","private":false,"owner":{"type":"id","generated":false,"id":"Company:101231721668834888","typename":"Company"},"__typename":"Stack"},"Comment:107458548426189805":{"id":"107458548426189805","content":"Hi, I see your point in this selection but I do have a couple of questions:\n- How about vendor lockin? Is this something not bothering you? \n- Have you tried AWS's Managed MongoDB? Thing's shouldn't be tough that ways?\n\n ","postedAt":"2021-12-16T20:42:03Z","upvoted":false,"flagged":false,"upvotesCount":0,"parentId":null,"user":{"type":"id","generated":false,"id":"User:103839182362437842","typename":"User"},"__typename":"Comment","replies":[]},"User:103839182362437842":{"id":"103839182362437842","path":"/bipul2231","imageUrl":"https://img.stackshare.io/user/446607/default_8749382a4786ba9127fdc9a0e248e710a1107c49.jpg","displayName":"Bipul Agarwal","__typename":"User"},"$StackDecision:107226592077181286.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:107226592077181286.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:107226592077181286.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231804536079030.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.0":{"node":{"type":"id","generated":false,"id":"StackDecision:107226592077181286","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"StackDecision:107226550868873369":{"id":"107226550868873369","publicId":"107226550868873369","htmlContent":"
Back in 2018, we were running microservices in the ECS cluster by managing EC2 instances ourselves. It involved lots of toil work. \n\n
Without Fargate we had to maintain & monitor a pool of spot instances, choose the right size of instances, keep OS up-to-date, etc.\n\n
We want to ship features, not to manage servers. That's why as soon as AWS Fargate was announced, we migrated our microservices to this managed service. The only configuration you need is Docker image, RAM & CPU resources. The rest of the heavy lifting is taken care of by Fargate, which is wonderful.","rawContent":"Back in 2018, we were running microservices in the ECS cluster by managing EC2 instances ourselves. It involved lots of toil work. \n\nWithout Fargate we had to maintain & monitor a pool of spot instances, choose the right size of instances, keep OS up-to-date, etc.\n\nWe want to ship features, not to manage servers. That's why as soon as AWS Fargate was announced, we migrated our microservices to this managed service. The only configuration you need is Docker image, RAM & CPU resources. The rest of the heavy lifting is taken care of by Fargate, which is wonderful.","publishedAt":"2021-11-05T21:22:01Z","commentsCount":0,"private":false,"upvotesCount":5,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":8226,"draft":false,"createdAt":"2021-11-05T21:22:01Z","decisionType":"migration","showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:107226550868873369.permissions","typename":"Permissions"},"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231777400833565","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"}],"fromTools":[{"type":"id","generated":false,"id":"Tool:101231774215500019","typename":"Tool"}],"toTools":[{"type":"id","generated":false,"id":"Tool:101231777400833565","typename":"Tool"}],"link":null,"company":{"type":"id","generated":false,"id":"Company:101231721668834888","typename":"Company"},"topics":[],"stack":{"type":"id","generated":false,"id":"Stack:101231804536079030","typename":"Stack"},"services":[],"user":{"type":"id","generated":false,"id":"User:101232075734831667","typename":"User"},"rootComments":[],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:107226550868873369.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:107226550868873369.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"$StackDecision:107226550868873369.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:107226550868873369.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:107226550868873369.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231804536079030.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.1":{"node":{"type":"id","generated":false,"id":"StackDecision:107226550868873369","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"StackDecision:106669763414987202":{"id":"106669763414987202","publicId":"106669763414987202","htmlContent":"
As the Shelf Dev Team grows in size, more and more newly joined engineers face questions specific to our codebase and development setup.\n\n
Imagine you try to launch a project locally for development, and then some obscure error comes up with a stack trace pointing to some internal tooling. Obviously, you won't find any help on Google, as it comes from code developed internally.\n\n
Usually, more experienced developers help newcomers in Slack. This is the fastest way to get help, but it doesn't scale, it's not repeatable, and usually is lost, since communication happens in direct messages.\n\n
That's where Stackoverflow for Teams comes in. ","rawContent":"As the Shelf Dev Team grows in size, more and more newly joined engineers face questions specific to our codebase and development setup.\n\nImagine you try to launch a project locally for development, and then some obscure error comes up with a stack trace pointing to some internal tooling. Obviously, you won't find any help on Google, as it comes from code developed internally.\n\nUsually, more experienced developers help newcomers in Slack. This is the fastest way to get help, but it doesn't scale, it's not repeatable, and usually is lost, since communication happens in direct messages.\n\nThat's where Stackoverflow for Teams comes in. ","publishedAt":"2021-07-30T13:23:38Z","commentsCount":0,"private":false,"upvotesCount":4,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":30987,"draft":false,"createdAt":"2021-07-30T13:23:39Z","decisionType":"tool","showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:106669763414987202.permissions","typename":"Permissions"},"subjectTools":[{"type":"id","generated":false,"id":"Tool:104004615976773691","typename":"Tool"}],"fromTools":[],"toTools":[{"type":"id","generated":false,"id":"Tool:104004615976773691","typename":"Tool"}],"link":null,"company":{"type":"id","generated":false,"id":"Company:101231721668834888","typename":"Company"},"topics":[],"stack":{"type":"id","generated":false,"id":"Stack:101231804536079030","typename":"Stack"},"services":[],"user":{"type":"id","generated":false,"id":"User:101232075734831667","typename":"User"},"rootComments":[],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:106669763414987202.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:106669763414987202.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"Tool:104004615976773691":{"id":"104004615976773691","name":"Stack Overflow for Teams","slug":"stack-overflow-for-teams","title":"Organize and share knowledge across your company","verified":false,"imageUrl":"https://img.stackshare.io/service/12103/so-icon.png","canonicalUrl":"/stack-overflow-for-teams","path":"/stack-overflow-for-teams","votes":0,"fans":12,"stacks":11,"followingTool":false,"followContext":null,"__typename":"Tool"},"$StackDecision:106669763414987202.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:106669763414987202.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:106669763414987202.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231804536079030.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.2":{"node":{"type":"id","generated":false,"id":"StackDecision:106669763414987202","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"StackDecision:103023997463695333":{"id":"103023997463695333","publicId":"103023997463695333","htmlContent":"
As our codebase grew in size, we were looking for ways to improve code quality. We chose TypeScript over Flow due to its rapid industry adoption and overall tools support. \n\n
We noticed how different open-source projects were migrating from Flow to TypeScript. Most notably, it was Jest, even though Jest and Flow were both developed by Facebook. See this HN thread if you want to dive into an interesting discussion around this move.\n\n Additionally, at the beginning of 2019, both Babel and ESLint enabled seamless TypeScript support, which allowed easy migration path in a backward-compatible way.","rawContent":"As our codebase grew in size, we were looking for ways to improve code quality. We chose TypeScript over Flow due to its rapid industry adoption and overall tools support. \n\nWe noticed how different open-source projects were migrating from Flow to TypeScript. Most notably, it was [Jest](https://github.com/facebook/jest/pull/7554), even though Jest and Flow were both developed by Facebook. See [this](https://news.ycombinator.com/item?id=18918038) HN thread if you want to dive into an interesting discussion around this move.\n\nAdditionally, at the beginning of 2019, both Babel and ESLint enabled seamless TypeScript support, which allowed easy migration path in a backward-compatible way.","publishedAt":"2019-10-25T16:37:25Z","commentsCount":0,"private":false,"upvotesCount":3,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":143901,"draft":false,"createdAt":"2019-10-25T16:37:25Z","decisionType":"tool","showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:103023997463695333.permissions","typename":"Permissions"},"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231777202346982","typename":"Tool"}],"fromTools":[{"type":"id","generated":false,"id":"Tool:101231777202346982","typename":"Tool"}],"toTools":[{"type":"id","generated":false,"id":"Tool:101231774098455524","typename":"Tool"}],"link":null,"company":{"type":"id","generated":false,"id":"Company:101231721668834888","typename":"Company"},"topics":[],"stack":{"type":"id","generated":false,"id":"Stack:101231804536079030","typename":"Stack"},"services":[],"user":{"type":"id","generated":false,"id":"User:101232075734831667","typename":"User"},"rootComments":[],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:103023997463695333.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:103023997463695333.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"Tool:101231777202346982":{"id":"101231777202346982","name":"Flow (JS)","slug":"flow--js-","title":"Flow is a static type checker for Javascript (by Facebook)","verified":false,"imageUrl":"https://img.stackshare.io/service/7550/7mfszmjJ_400x400.jpg","canonicalUrl":"/flow--js-","path":"/flow--js-","votes":0,"fans":124,"stacks":152,"followingTool":false,"followContext":null,"__typename":"Tool"},"$StackDecision:103023997463695333.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:103023997463695333.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:103023997463695333.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231804536079030.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.3":{"node":{"type":"id","generated":false,"id":"StackDecision:103023997463695333","typename":"StackDecision"},"__typename":"StackDecisionEdge"},"StackDecision:106074247839338208":{"id":"106074247839338208","publicId":"106074247839338208","htmlContent":" We migrated all our CI/CD pipelines to CircleCI back in 2017 and are particularly happy about it since!\n\n Our top loved feature is unlimited parallelism. We can run as many builds concurrently as we want.\n\n We also use orbs, pipeline parameters, reusable commands, build cache, test insights.\n\n For some of the heavier repos, we use a larger resource class and mount RAMdisk to a file system to speed up builds.","rawContent":"We migrated all our CI/CD pipelines to CircleCI back in 2017 and are particularly happy about it since!\n\nOur top loved feature is unlimited parallelism. We can run as many builds concurrently as we want.\n\nWe also use orbs, pipeline parameters, reusable commands, build cache, test insights.\n\nFor some of the heavier repos, we use a larger resource class and mount RAMdisk to a file system to speed up builds.","publishedAt":"2021-04-16T09:16:12Z","commentsCount":0,"private":false,"upvotesCount":3,"upvoted":false,"flagged":false,"bookmarked":false,"viewCount":43659,"draft":false,"createdAt":"2021-04-16T09:16:12Z","decisionType":"migration","showAutoGeneratedTag":false,"permissions":{"type":"id","generated":true,"id":"$StackDecision:106074247839338208.permissions","typename":"Permissions"},"subjectTools":[{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"},{"type":"id","generated":false,"id":"Tool:101231773798656581","typename":"Tool"}],"fromTools":[{"type":"id","generated":false,"id":"Tool:101231773798656581","typename":"Tool"}],"toTools":[{"type":"id","generated":false,"id":"Tool:101231773501041914","typename":"Tool"}],"link":null,"company":{"type":"id","generated":false,"id":"Company:101231721668834888","typename":"Company"},"topics":[],"stack":{"type":"id","generated":false,"id":"Stack:101231804536079030","typename":"Stack"},"services":[],"user":{"type":"id","generated":false,"id":"User:101232075734831667","typename":"User"},"rootComments":[],"__typename":"StackDecision","answers({\"first\":2})":{"type":"id","generated":true,"id":"$StackDecision:106074247839338208.answers({\"first\":2})","typename":"StackDecisionConnection"}},"$StackDecision:106074247839338208.permissions":{"edit":false,"delete":false,"__typename":"Permissions"},"Tool:101231773798656581":{"id":"101231773798656581","name":"wercker","slug":"wercker","title":"Build, test, and deploy container-native applications","verified":false,"imageUrl":"https://img.stackshare.io/service/897/S67KcxKE.png","canonicalUrl":"/wercker","path":"/wercker","votes":242,"fans":229,"stacks":367,"followingTool":false,"followContext":null,"__typename":"Tool"},"$StackDecision:106074247839338208.answers({\"first\":2})":{"count":0,"pageInfo":{"type":"id","generated":true,"id":"$StackDecision:106074247839338208.answers({\"first\":2}).pageInfo","typename":"PageInfo"},"edges":[],"__typename":"StackDecisionConnection"},"$StackDecision:106074247839338208.answers({\"first\":2}).pageInfo":{"hasNextPage":false,"endCursor":null,"__typename":"PageInfo"},"$StackProfile:101231804536079030.stackDecisions({\"currentStackOnly\":true,\"first\":5}).edges.4":{"node":{"type":"id","generated":false,"id":"StackDecision:106074247839338208","typename":"StackDecision"},"__typename":"StackDecisionEdge"}}