FundsCorner

Decision at FundsCorner about 扎帕AWS Lambda,SQLAlchemy,蟒蛇,Amazon SQS,Node.js蒙哥德针迹PostgreSQL,MongoDB

耶亚巴拉吉的化身

Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our productionMongoDBto aPostgreSQL数据仓库和商业智能数据库。

We set ourselves the following criteria for the optimal tool that would do this job:- The data replication must be near real-time,然而,它不应该影响生产数据库——数据复制必须是水平可伸缩的(基于负载)。asynchronous & crash-resilient

Based on the above criteria,我们选择了以下工具来执行端到端数据复制:

We choseMongoDB Stitch用于获取源数据库中的更改。It is the serverless platform from MongoDB.One of the services offered by MongoDB Stitch is Stitch Triggers.Using stitch triggers,可以执行无服务器函数(在Node.js) in real time in response to changes in the database.When there are a lot of database changes,Stitch通过异步队列自动“前馈”这些更改。

We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service.有趣的是,MongoDB Stitch提供与AWS服务的集成。

In theNode.jsfunction,我们编写了将数据库更改(插入/更新/删除/替换)传递到Amazon SQS.

接下来,我们在蟒蛇要收听SQS上的消息事件,获取数据有效负载并将数据库更改镜像到目标数据仓库。我们通过模拟目标表结构实现了源数据到目标数据的转换。SQLAlchemy.我们将此微服务部署为AWS Lambdawith扎帕.With Zappa,将服务部署为事件驱动的水平可伸缩lambda服务非常简单。

最后,we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

23 up亚博平台怎么样votes · 22.1K views

Decision at FundsCorner about Amazon Cognito,Vuetify,Vue.jsHTML5,JavaScript

耶亚巴拉吉的化身

At FundsCorner,当我们开始收集前端技术组合时(大约在2017年12月左右),we drove our decision based on the following considerations:

(1) We were clear that we will NOT have a hybrid app.We will start with Responsive Web & once there is traction,we will rollout our Android App.However,we wanted to ensure that the users have a consistent experience on both the Web & the App.So,前端框架还必须有一个我们可以选择的材料设计组件库。

(2)在担任首席技术官之前,I had already worked with Angular.I enjoyed working with Angular,but I felt that I must choose something that will provide us with the fastest time from Concept to Reality.

(3)我强烈支持分离HTML和JavaScript。I.e.I was not for writing or generating HTML through JavaScript.Because,this will mean that the Front-end developers I have to hire will always be very strong onJavaScriptalongsideHTML5和CSS。I was looking for a Framework that was on JavaScript but not HEAVY on JavaScript.

(3) The first iteration of the web app was to be done by myself.But I was clear that when someone takes up the mantle,他们能很快地走上弯道。

最后,Vue.jsandVuetifysatisfied all the above criteria with aplomb!当我第一次进行POC时Vue.js我不敢相信前端开发会如此之快。文件是相当优秀的,所有必需的要素都随框架而来(即。路由,Store,Validations) etc.来自同一社区!It was also a breeze to integrate with other JavaScript libraries (such as亚马逊认知).

By pickingVuetify,we were able to provide a consistent UI experience between our Web App and Native App,除了让用户界面的开发速度极快!

最后,we were able to rollout our Web App in record 6 weeks (that included the end to end Loan Origination flow,Loans management system & Customer engagement module).www.jeyabalaji.com

十九 up亚博平台怎么样votes · 2 评论 · 7.9K views

Decision at FundsCorner about Amazon SQS,Sentry,GitLab CI,松弛,Google Compute Engine,Netlify,AWS Lambda,扎帕维乌斯Vuetify,Vue.jsSwagger UI,MongoDB,瓶,蟒蛇

耶亚巴拉吉的化身

At FundsCorner,we are on a mission to enable fast accessible credit to India's Kirana Stores.We are an early stage startup with an ultra small Engineering team.我们迄今为止所做的所有技术决策都是基于我们的核心理念:“快速制造可用产品”。

基于上述基本原则,we chose蟒蛇作为我们所有API和微服务的基础语言。它是超容易入手,yet provides great libraries even for the most complex of use cases.Our entire backend stack runs on蟒蛇我们不能对它更满意!If you are looking to deploy your API as server-less,Python provides one of the least cold start times.

We build our APIs withFlask.For backend database,our natural choice wasMongoDB.它将我们的时间从复杂的数据库规范中解放出来——我们用我们的时间来做明智的数据建模,一旦我们最终确定了数据模型,we integrate it into Flask usingSwagger UI.Mongo支持复杂的查询,通过聚合框架剔除困难数据,我们甚至构建了一个名为“Poetry”的内部框架。用于聚合查询。

我们的网络应用程序建立在Vue.js,Vuetifyand武克斯.Initially we debated a lot around choosingVue.js或反应,but finally settled withVue.js,主要是因为使用方便,fast development cycles & awesome set of libraries and utilities backing Vue.

你根本不能出错Vue.js.很好的文件,the library is ultra compact & is blazing fast.选择Vue.js是做出的关键决定之一,which enabled us to launch our web app in under a month (which otherwise would have taken 3 months easily).For those folks who are looking for big names,土砖,阿里巴巴和Gitlab也在使用Vue。

通过选择Vuetify,we saved thousands of person hours in designing the CSS files.Vuetifycontains all key material components for designing a smooth User experience & it just works!这是一个很棒的框架。All of us at FundsCorner are now lifelong fanboys ofVue.jsandVuetify.

在基础设施方面,all our API services and backend services are deployed as server less micro-services through扎帕.扎帕makes your life super easy by packaging everything that is required to deploy your code asAWS Lambda.We are now addicted to the single - click deploys / updates through扎帕.试试看,你会变的!

也,如果您正在使用扎帕,您可以大大简化CI/CD管道。Do try it!It's just awesome!还有…you will be astonished by the savings you have made on AWS bills at end of the month.

我们的CI/CD管道使用吉塔实验室.The documentation is very good & it enables you to go from from concept to production in minimal time frame.

我们使用哨兵所有事故报告和解决方案。专业小贴士,they do have handlers forAWS Lambda,which made our integration super easy.

All our micro-services including APIs are event-driven.Our background micro-services are message oriented & we useAmazon SQSas our message pipe.我们有自己的内部工作流管理器来协调整个微服务。

We host our static websites onNetlify.One of the cool things aboutNetlifyis the automated CI / CD on git push.You just do a git push to deploy!Again,it is super simple to use and it just works.We were dogmatic about going server less even on static web sites & you can go server less onNetlify几分钟后。只需点击几下。

我们使用Google Compute Engine,尤其是我们人工智能实验的谷歌愿景。

对于操作自动化,we use松弛.Slack提供了一个超级丰富的API(通过Slack应用程序),通过它您可以为无聊的操作任务编织神奇的自动化。

12 up亚博平台怎么样votes · 8 7K views

Decision at FundsCorner about 阿特拉斯,MongoDB,PostgreSQL

耶亚巴拉吉的化身

数据库是任何技术栈的核心。It is no wonder we spend a lot of time choosing the right database before we dive deep into product building.

When we were faced with the question of what database to choose,we set the following criteria: The database must(1) Have a very high transaction throughput.We wanted to err on the side of "reads" but not on the "writes".(2) be flexible.I.e.具有足够的适应能力,以适应数据变化。因为我们是一个早期的创业公司,not everything is set in stone.(3) Fast & easy to work with(4) Cloud Native.我们不想把时间花在“任何”基础设施管理上。

Based on the above,we pickedPostgreSQLandMongoDB进行评估。We tried a few iterations on hardening the data model with PostgreSQL,but realised that we can move much faster by loosely defining the schema (with just a few fundamental principles intact).

Thus we switched to MongoDB.潜水前,we validated a few core principles such as:(1) Transaction guarantee.Until 3.6,MongoDB supports Transaction guarantee at Document level.From 4.0 onwards,您可以跨多个文档实现交易担保。

(2) Primary Keys & Indexing: Like any RDBMS,MongoDB supports unique keys & indexes to ensure data integrity & search ability

(3)跨数据集联接数据的能力:MongoDB提供了一个超级丰富的聚合框架,允许用户过滤和分组数据。

(4) Concurrency handling: MongoDB offers specific operations (such as findOneAndUpdate),which when coupled with Optimistic Locking,can be used to achieve concurrency.

首先,MongoDB提供了一个完整的免费云数据库服务-MongoDB Atlas.这样我们就成交了。

Looking back,choosing MongoDB with MongoDB Atlas was one of the best decisions we took and it is serving us well.My only gripe is that there must be a way to scale-up or scale-down the Atlas configuration at different parts of the day with minimal downtime.

up亚博平台怎么样votes · 评论 · 10.5K views