Go to file
sneha122 c6d9073b5e
fix: connection pool config added for dynamoDB to avoid stale connections (#38940)
## Description
**Problem statement:**
In one of the instances where dynamoDB had close to 200 odd queries on
top of it, queries were timing out after a month or so, this happened 3
times with one of the users, where after a month, queries would suddenly
start timing out. One of the hunches was that since we create
dynamoDBclient object only once during datasource creation, it could be
getting stale thus resulting in query timeouts and with that hunch, we
decided to add a fix where we close the old connections regularly after
using for a day.

**Solution:**
This PR configures connection time to live property for DynamoDB plugin.
This is configured to be 1 day which means after 1 day, active/idle
connections will be closed. This is done to ensure that we don't face
issues if the connection becomes stale. Default value of connection time
to live is 0 which means the connection stays open for infinite amount
of time.

To ensure that we do not cause any issues due to introduction of this
property, we decided to add this behind a feature flag. All the feature
flagging related code exists at the `appsmith-server` module but
dynamoDb code exists in `appsmith-plugins -> dynamoDB` module, so in
order to provide feature flagging, ideally we should make feature
flagging service available at `appsmith-interface` module to ensure that
it can get consumed across different modules but that's a [known tech
debt](https://github.com/appsmithorg/appsmith/issues/39425) which we
should resolve soon, but in the meantime to expedite the fix, I have
passed in flag details to respective datasourceCreate functionality.
datasourceCreate also gets called from testDatasource, so feature
flagging has been implemented there as well.

At some point in time, based on whether this potential fix works or not,
we should plan to remove the feature flagging code, task for that added
[here](https://github.com/appsmithorg/appsmith/issues/39426)

**References:**

-
https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/apache/ApacheHttpClient.Builder.html#connectionTimeToLive(java.time.Duration)
-
https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/http/SdkHttpConfigurationOption.html#CONNECTION_TIME_TO_LIVE
- https://github.com/aws/aws-sdk-java/issues/2788 



Fixes #[`Issue
Number`](https://github.com/appsmithorg/appsmith-ee/issues/6030)
_or_  
Fixes `Issue URL`
> [!WARNING]  
> _If no issue exists, please create an issue first, and check with the
maintainers if the issue is valid._

## Automation

/ok-to-test tags="@tag.Datasource"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> 🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
> Workflow run:
<https://github.com/appsmithorg/appsmith/actions/runs/13515219987>
> Commit: 953e570b2e153087fa7b27c8c24cb50f74333159
> <a
href="https://internal.appsmith.com/app/cypress-dashboard/rundetails-65890b3c81d7400d08fa9ee5?branch=master&workflowId=13515219987&attempt=1"
target="_blank">Cypress dashboard</a>.
> Tags: `@tag.Datasource`
> Spec:
> <hr>Tue, 25 Feb 2025 07:21:25 UTC
<!-- end of auto-generated comment: Cypress test results  -->


## Communication
Should the DevRel and Marketing teams inform users about this change?
- [ ] Yes
- [x] No


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Enhanced DynamoDB plugin connection management with configurable
connection time-to-live
- Added Apache HTTP client support for improved network connection
handling

- **Dependencies**
	- Updated Apache client dependency to version 2.15.3

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: “sneha122” <“sneha@appsmith.com”>
2025-02-25 22:03:11 +05:30
.github ci: Fix re-runs in server suite (#39429) 2025-02-25 14:41:36 +05:30
app fix: connection pool config added for dynamoDB to avoid stale connections (#38940) 2025-02-25 22:03:11 +05:30
contributions chore: Added details for running local setup (#35968) 2024-09-09 11:01:38 +05:30
deploy fix: security update init-container for redis (#39150) 2025-02-10 14:36:37 +05:30
scripts fix: enable ai related features in dps (#39062) 2025-02-06 13:57:51 +05:30
static Add files via upload 2023-08-11 19:09:51 +05:30
.coderabbit.yaml chore: Updated the coderabbit tone of voice (#36946) 2024-10-17 17:46:52 +05:30
.deepsource.toml Create .deepsource.toml (#3593) 2021-03-19 11:40:59 +05:30
.editorconfig feat: Make images adaptable to support both Postgres and MongoDB uris (#36424) 2024-09-19 21:45:46 +05:30
.env.example chore: Remove Algolia, we don't use it anymore (#37664) 2024-11-23 21:38:04 +05:30
.gitignore chore: git pkg - package integration with git (#39342) 2025-02-19 13:42:58 +01:00
.imgbotconfig Added imgbot config file (#1655) 2020-11-09 17:52:53 +05:30
.nojekyll Add a nojekyll file for helm charts to work 2021-11-26 14:04:22 +05:30
app.json test: Enable server tests for the PRs with base PG branch (#33429) 2024-05-22 15:55:20 +05:30
appsmith_events.md docs: Updated appsmith_events.md and SECURITY.md (#8921) 2021-11-12 13:42:41 +05:30
appsmith_templates.md feat: migrate from org to workspace under phase 3 (#14158) 2022-07-20 17:24:16 +05:30
ci-debug.sh ci: CI optimisation to reduce ci-test run time and modularise docker image building (#21219) 2023-03-10 12:51:32 +05:30
CODE_OF_CONDUCT.md Readme (#11) 2020-07-01 16:42:41 +05:30
CODEOWNERS chore: Update CODEOWNERS (#38514) 2025-01-07 11:33:16 +05:30
CONTRIBUTING.md docs: Updating contribution guidelines (#18190) 2022-11-23 11:41:40 +05:30
depot.json ci: Fixing the RTS build workflow (#16748) 2022-09-14 14:24:20 +05:30
Dockerfile chore: Move appsmithctl to RTS (#37531) 2024-11-20 20:58:38 +05:30
heroku.yml Heroku Button implementation (#1721) 2020-11-18 18:53:59 +05:30
IssuesReport.md Feature/hacktoberfest (#841) 2020-09-30 23:23:10 +05:30
LICENSE Update LICENSE 2021-05-27 12:53:55 +05:30
README.md chore:update README.md to reflect Youtube stats (#36874) 2024-11-25 10:06:14 +05:30
SECURITY.md docs: Updated appsmith_events.md and SECURITY.md (#8921) 2021-11-12 13:42:41 +05:30

Appsmith Logo

Discord GitHub commit activity YouTube Channel Subscribers YouTube Channel Views


Organizations build internal applications such as dashboards, database GUIs, admin panels, approval apps, customer support dashboards, and more to help their teams perform day-to-day operations. Appsmith is an open-source tool that enables the rapid development of these internal apps. Read more on our website.

Appsmith in 100 secs

Installation

There are two ways to start using Appsmith:

  • Signup on Appsmith Cloud.
  • Install Appsmith on your machine. See the installation guides below.
Installation Methods Documentation
Docker Docker (Recommended)
Kubernetes Kubernetes
AWS AWS AMI

For other deployment options, see the Installation Guides documentation.

Development

To build and run Appsmith in your local dev environment, see Setup for local development.

Learning Resources

Need Help?

Contributing

We ❤️ our contributors. We're committed to fostering an open, welcoming, and safe environment in the community.

📕 We expect everyone participating in the community to abide by our Code of Conduct. Please read and follow it.
🤝 If you'd like to contribute, start by reading our Contribution Guide.
👾 Explore some good first issues.

Let's build great software together.

Top Contributors

Nikhil-Nandagopal mohanarpit sharat87 hetunandu trishaanand riodeuno nidhi-nair vicky-primathon Aishwarya-U-R satbir121 sumitsum AnaghHegde arunvjn NandanAnantharamu ankitakinger nayan-rafiq abhvsn jsartisan Rishabh-Rathod ohansFavour sbalaji1192 sarojsarab SatishGandham AmanAgarwal041 prsidhu ayushpahwa sneha122 ApekshaBhosale Parthvi12 yatinappsmith somangshu pratapaprasanna pranavkanade albinAppsmith marks0351 nsarupr ashit-rath NilanshBansal sondermanish KelvinOm dhruvikn rajatagrawal areyabhishek subrata71 ichik dipyamanbiswas07 rahulbarwal ankitsrivas14 vsvamsi1 brayn003 sharanya-appsmith vivonk dvj1988 ramsaptami rohan-arthur jacquesikot danciaclara kocharrahul7 riteshkew srix laveena-en RakshaKShetty Rishabhkaul sandeepravi tejasahluwalia dilippitchika nerbos rlnorthcutt kevinblanco AbhaySM tomjose92 andreevanatasha LagunaElectric sribalajig infinitetrooper RoopKrrish9696 bharath31 GreenFlux shadabbuchh harshilp24 appsmith-bot momcilo-appsmith shwetha-ramesh vasanthappsmith parth-appsmith chandannkumar jnikhila vinay-appsmith ame-appsmith btsgh Sripriya93 pranayagarwal96 kamakshibhat-appsmith sujdev7 BharghaviK carinanfonseca deepikaappsmith Harshask93 cssonic kavitasmoolya NeelPattani1 rashmi-sahoo-git michael-peach-appsmith akash-codemonk Tooluloope rishabhsaxena wmdev0808 Irongade techbhavin yaldram aswathkk rahulramesha sidhantgoel Vijetha-Kaja haojin111 berzerkeer sum35h ChandanBalajiBP devrk96 keyurparalkar eco-monk vibhandikyash ofpiyush vishnu-gp rimildeyjsr tanvibhakta rashmigowda55 ankurrsinghal Druthi geekup-legodevops megaconfidence vihar danieldare Nikhil-Curefit souma-ghosh arslanhaiderbuttar tkAppsmith rashmi-rai leotom2000 ravikp7 Adityaacharya1807 RashmiNagarajp prapullac kaushik94 PiyushPushkar02 akshayrangasaid mojtab23 rohitagarwal88 iamakulov iamrkcheers sumanthyedoti shubham7saxena7 vaibh1297 vnodecg pc9795 Rhitottam Pranay105 iSatVeerSingh abm17 akshay11298 daniel-shuy daniloff200 osis harshitpandey0426 ganganimaulik jyash97 ram-primathon sub1983 sanjus-robotic-studio AR10X shreemaan-abhishek A-Scratchy gitstart-appsmith manish535 shinnlok suhasranganath ThakurKarthik trdillon acharyaaditya18 amogh2019 appsmithguru pric-appsmith sunil-codemonk abhiappsmith ajinkyakulkarni Cool-Runningz akbansa ArjobanSingh bharat-patodi Bhavin789 bhuvanaindukuri donno2048 jacobwgillespie reachtokish nuwan94 OmkarPh parthiv11 priyanka-mahour rafaeelaudibert samyakjain10 Jain-Sanchit irfan-ansari-au28 sheetal2001p Hard-Coder05 vj-codes knockknockyoo jdun28 alphaX86 aanchal-fatwani monarch0111 abhishekS14 adarshlilha avats-dev visibleajay blenderskool AlekSi alzaar heroic AJ-72 apoorv-mishra anvaravind ari-hacks arunstar ashwanisindhu1 ayushkumarbhadani Caitlin-Fotheringham Chiradeep-Banik chrismaeda CommanderRoot DevSnap digvijaysinghh DiptoChakrabarty felixsuarez0727 gitstart Gretel8 danguilherme harshmange44 indrajitbnikam ishaanmehta4 jaikanthjay46 jarimayenburg JarLob JeffResc jmakhack jlund jrcamelo khoahuynhdev kylegalbraith loiscodes jk2K micarner me-heer MuhammadAakash dammahhammad moulik-deepsource Nandanha wasabigeek nipun1999 nishihere19 Nitesh2905 eagleera NoxiousPenguin palashkaria pallavagarwal07 paususe neok sanchezpili6 pushkar1393 imor ricardocarrola RishiKumarRay Rooney30 Saket2 Sheikh-JamirAlam withshubh smrutiparida somnathdasadhikari srijanshetty Sufiyan1997 rayrny trishitapingolia trivikr webdott vasanthkumar18 VanshajPoonia vedant-pandey torcoste vvkpd yasharma2301 Yash-Bhange YogeshJayaseelan Ian-Yy danceAndJive devnamrits deepakchethan IAmAnubhavSaini gokuatkai Jackenmen Mrxyy zimkjh kyteinsky lifeneedspassion nikhil-babar nupur-singhal1992 nzidol onifs10 ps-xaf

License

Appsmith is licensed under the terms of Apache License 2.0.